diff options
author | Dominik Stadler <centic@apache.org> | 2016-02-15 09:26:51 +0000 |
---|---|---|
committer | Dominik Stadler <centic@apache.org> | 2016-02-15 09:26:51 +0000 |
commit | 16b90ce3423263d0bfc89a14cbdd9820b3e7db6d (patch) | |
tree | b2cf77d3f17bf66528595580d358a9ec355f0a5d | |
parent | e156c3d6910752dfa6fd10250038da1c08c58530 (diff) | |
download | poi-16b90ce3423263d0bfc89a14cbdd9820b3e7db6d.tar.gz poi-16b90ce3423263d0bfc89a14cbdd9820b3e7db6d.zip |
GitHub PR 27: Add method to check for any protection in XWPFDocument, closes #27
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1730471 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java | 16 | ||||
-rw-r--r-- | src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFSettings.java | 23 | ||||
-rw-r--r-- | src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFDocument.java | 7 | ||||
-rw-r--r-- | test-data/document/EnforcedWith.docx | bin | 0 -> 11321 bytes |
4 files changed, 46 insertions, 0 deletions
diff --git a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java index a7cf4dca08..82f545c031 100644 --- a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java +++ b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java @@ -919,6 +919,22 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody { tables.set(pos, table); ctDocument.getBody().setTblArray(pos, table.getCTTbl()); } + + /** + * Verifies that the documentProtection tag in settings.xml file <br/> + * specifies that the protection is enforced (w:enforcement="1") <br/> + * <br/> + * sample snippet from settings.xml + * <pre> + * <w:settings ... > + * <w:documentProtection w:edit="readOnly" w:enforcement="1"/> + * </pre> + * + * @return true if documentProtection is enforced with option any + */ + public boolean isEnforcedProtection() { + return settings.isEnforcedWith(); + } /** * Verifies that the documentProtection tag in settings.xml file <br/> diff --git a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFSettings.java b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFSettings.java index fa4e6401f9..d9d29a3303 100644 --- a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFSettings.java +++ b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFSettings.java @@ -120,6 +120,29 @@ public class XWPFSettings extends POIXMLDocumentPart { CTZoom zoom = ctSettings.getZoom(); zoom.setPercent(BigInteger.valueOf(zoomPercent)); } + + /** + * Verifies the documentProtection tag inside settings.xml file <br/> + * if the protection is enforced (w:enforcement="1") <br/> + * <p/> + * <br/> + * sample snippet from settings.xml + * <pre> + * <w:settings ... > + * <w:documentProtection w:edit="readOnly" w:enforcement="1"/> + * </pre> + * + * @return true if documentProtection is enforced with option any + */ + public boolean isEnforcedWith() { + CTDocProtect ctDocProtect = ctSettings.getDocumentProtection(); + + if (ctDocProtect == null) { + return false; + } + + return ctDocProtect.getEnforcement().equals(STOnOff.X_1); + } /** * Verifies the documentProtection tag inside settings.xml file <br/> diff --git a/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFDocument.java b/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFDocument.java index 43d8cce0f9..afa0428b4a 100644 --- a/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFDocument.java +++ b/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFDocument.java @@ -416,4 +416,11 @@ public final class TestXWPFDocument { doc.close(); } + + @Test + public void testEnforcedWith() throws IOException { + XWPFDocument docx = XWPFTestDataSamples.openSampleDocument("EnforcedWith.docx"); + assertTrue(docx.isEnforcedProtection()); + docx.close(); + } } diff --git a/test-data/document/EnforcedWith.docx b/test-data/document/EnforcedWith.docx Binary files differnew file mode 100644 index 0000000000..c50e358591 --- /dev/null +++ b/test-data/document/EnforcedWith.docx |