]> source.dussan.org Git - poi.git/commitdiff
Fix inconsistent whitespace and indents
authorNick Burch <nick@apache.org>
Tue, 21 Jun 2016 14:34:12 +0000 (14:34 +0000)
committerNick Burch <nick@apache.org>
Tue, 21 Jun 2016 14:34:12 +0000 (14:34 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1749530 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/java/org/apache/poi/POIXMLProperties.java
src/ooxml/java/org/apache/poi/openxml4j/opc/OPCPackage.java
src/ooxml/testcases/org/apache/poi/TestPOIXMLProperties.java

index 0ce6ad677419dc43a051035c8c5fd36b7855660f..a8cb58dfe13fc5c6a3856a69f930c835c7dfb8b9 100644 (file)
@@ -45,114 +45,114 @@ import org.openxmlformats.schemas.officeDocument.x2006.customProperties.CTProper
  *  as well Thumbnails.
  */
 public class POIXMLProperties {
-       private OPCPackage pkg;
-       private CoreProperties core;
-       private ExtendedProperties ext;
-       private CustomProperties cust;
-
-       private PackagePart extPart;
-       private PackagePart custPart;
-
-
-       private static final org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.PropertiesDocument NEW_EXT_INSTANCE;
-       private static final org.openxmlformats.schemas.officeDocument.x2006.customProperties.PropertiesDocument NEW_CUST_INSTANCE;
-       static {
-               NEW_EXT_INSTANCE = org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.PropertiesDocument.Factory.newInstance();
-               NEW_EXT_INSTANCE.addNewProperties();
-
-               NEW_CUST_INSTANCE = org.openxmlformats.schemas.officeDocument.x2006.customProperties.PropertiesDocument.Factory.newInstance();
-               NEW_CUST_INSTANCE.addNewProperties();
-       }
-
-       public POIXMLProperties(OPCPackage docPackage) throws IOException, OpenXML4JException, XmlException {
-               this.pkg = docPackage;
-
-               // Core properties
-               core = new CoreProperties((PackagePropertiesPart)pkg.getPackageProperties() );
-
-               // Extended properties
-               PackageRelationshipCollection extRel =
-                       pkg.getRelationshipsByType(PackageRelationshipTypes.EXTENDED_PROPERTIES);
-               if(extRel.size() == 1) {
-                       extPart = pkg.getPart( extRel.getRelationship(0));
-                       org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.PropertiesDocument props = org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.PropertiesDocument.Factory.parse(
-                                extPart.getInputStream(), DEFAULT_XML_OPTIONS
-                       );
-                       ext = new ExtendedProperties(props);
-               } else {
-                       extPart = null;
-                       ext = new ExtendedProperties((org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.PropertiesDocument)NEW_EXT_INSTANCE.copy());
-               }
-
-               // Custom properties
-               PackageRelationshipCollection custRel =
-                       pkg.getRelationshipsByType(PackageRelationshipTypes.CUSTOM_PROPERTIES);
-               if(custRel.size() == 1) {
-                       custPart = pkg.getPart( custRel.getRelationship(0));
-                       org.openxmlformats.schemas.officeDocument.x2006.customProperties.PropertiesDocument props = org.openxmlformats.schemas.officeDocument.x2006.customProperties.PropertiesDocument.Factory.parse(
-                                       custPart.getInputStream(), DEFAULT_XML_OPTIONS
-                       );
-                       cust = new CustomProperties(props);
-               } else {
-                       custPart = null;
-                       cust = new CustomProperties((org.openxmlformats.schemas.officeDocument.x2006.customProperties.PropertiesDocument)NEW_CUST_INSTANCE.copy());
-               }
-       }
-
-       /**
-        * Returns the core document properties
-        
-        * @return the core document properties
-        */
-       public CoreProperties getCoreProperties() {
-               return core;
-       }
-
-       /**
-        * Returns the extended document properties
-        
-        * @return the extended document properties
-        */
-       public ExtendedProperties getExtendedProperties() {
-               return ext;
-       }
-
-       /**
-        * Returns the custom document properties
-        
-        * @return the custom document properties
-        */
-       public CustomProperties getCustomProperties() {
-               return cust;
-       }
-       
-       /**
-        * Returns the {@link PackagePart} for the Document
-        *  Thumbnail, or <code>null</code> if there isn't one
-        *
-        * @return The Document Thumbnail part or null
-        */
-       protected PackagePart getThumbnailPart() {
+    private OPCPackage pkg;
+    private CoreProperties core;
+    private ExtendedProperties ext;
+    private CustomProperties cust;
+
+    private PackagePart extPart;
+    private PackagePart custPart;
+
+
+    private static final org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.PropertiesDocument NEW_EXT_INSTANCE;
+    private static final org.openxmlformats.schemas.officeDocument.x2006.customProperties.PropertiesDocument NEW_CUST_INSTANCE;
+    static {
+        NEW_EXT_INSTANCE = org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.PropertiesDocument.Factory.newInstance();
+        NEW_EXT_INSTANCE.addNewProperties();
+
+        NEW_CUST_INSTANCE = org.openxmlformats.schemas.officeDocument.x2006.customProperties.PropertiesDocument.Factory.newInstance();
+        NEW_CUST_INSTANCE.addNewProperties();
+    }
+
+    public POIXMLProperties(OPCPackage docPackage) throws IOException, OpenXML4JException, XmlException {
+        this.pkg = docPackage;
+
+        // Core properties
+        core = new CoreProperties((PackagePropertiesPart)pkg.getPackageProperties() );
+
+        // Extended properties
+        PackageRelationshipCollection extRel =
+                pkg.getRelationshipsByType(PackageRelationshipTypes.EXTENDED_PROPERTIES);
+        if(extRel.size() == 1) {
+            extPart = pkg.getPart( extRel.getRelationship(0));
+            org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.PropertiesDocument props = org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.PropertiesDocument.Factory.parse(
+                    extPart.getInputStream(), DEFAULT_XML_OPTIONS
+            );
+            ext = new ExtendedProperties(props);
+        } else {
+            extPart = null;
+            ext = new ExtendedProperties((org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.PropertiesDocument)NEW_EXT_INSTANCE.copy());
+        }
+
+        // Custom properties
+        PackageRelationshipCollection custRel =
+                pkg.getRelationshipsByType(PackageRelationshipTypes.CUSTOM_PROPERTIES);
+        if(custRel.size() == 1) {
+            custPart = pkg.getPart( custRel.getRelationship(0));
+            org.openxmlformats.schemas.officeDocument.x2006.customProperties.PropertiesDocument props = org.openxmlformats.schemas.officeDocument.x2006.customProperties.PropertiesDocument.Factory.parse(
+                    custPart.getInputStream(), DEFAULT_XML_OPTIONS
+            );
+            cust = new CustomProperties(props);
+        } else {
+            custPart = null;
+            cust = new CustomProperties((org.openxmlformats.schemas.officeDocument.x2006.customProperties.PropertiesDocument)NEW_CUST_INSTANCE.copy());
+        }
+    }
+
+    /**
+     * Returns the core document properties
+     * 
+     * @return the core document properties
+     */
+    public CoreProperties getCoreProperties() {
+        return core;
+    }
+
+    /**
+     * Returns the extended document properties
+     * 
+     * @return the extended document properties
+     */
+    public ExtendedProperties getExtendedProperties() {
+        return ext;
+    }
+
+    /**
+     * Returns the custom document properties
+     * 
+     * @return the custom document properties
+     */
+    public CustomProperties getCustomProperties() {
+        return cust;
+    }
+
+    /**
+     * Returns the {@link PackagePart} for the Document
+     *  Thumbnail, or <code>null</code> if there isn't one
+     *
+     * @return The Document Thumbnail part or null
+     */
+    protected PackagePart getThumbnailPart() {
         PackageRelationshipCollection rels =
                 pkg.getRelationshipsByType(PackageRelationshipTypes.THUMBNAIL);
         if(rels.size() == 1) {
             return pkg.getPart(rels.getRelationship(0));
         }
         return null;
-       }
-       /**
-        * Returns the name of the Document thumbnail, eg 
-        *  <code>thumbnail.jpeg</code>, or <code>null</code> if there
-        *  isn't one.
-        *
-        * @return The thumbnail filename, or null
-        */
-       public String getThumbnailFilename() {
-           PackagePart tPart = getThumbnailPart();
-           if (tPart == null) return null;
-           String name = tPart.getPartName().getName();
-           return name.substring(name.lastIndexOf('/'));
-       }
+    }
+    /**
+     * Returns the name of the Document thumbnail, eg 
+     *  <code>thumbnail.jpeg</code>, or <code>null</code> if there
+     *  isn't one.
+     *
+     * @return The thumbnail filename, or null
+     */
+    public String getThumbnailFilename() {
+        PackagePart tPart = getThumbnailPart();
+        if (tPart == null) return null;
+        String name = tPart.getPartName().getName();
+        return name.substring(name.lastIndexOf('/'));
+    }
     /**
      * Returns the Document thumbnail image data, or
      *  <code>null</code> if there isn't one.
@@ -164,15 +164,15 @@ public class POIXMLProperties {
         if (tPart == null) return null;
         return tPart.getInputStream();
     }
-       
-       /**
-        * Sets the Thumbnail for the document, replacing any existing
-        *  one.
-        *
-        * @param name The filename for the thumbnail image, eg <code>thumbnail.jpg</code>
-        * @param imageData The inputstream to read the thumbnail image from
-        */
-       public void setThumbnail(String filename, InputStream imageData) throws IOException {
+
+    /**
+     * Sets the Thumbnail for the document, replacing any existing
+     *  one.
+     *
+     * @param name The filename for the thumbnail image, eg <code>thumbnail.jpg</code>
+     * @param imageData The inputstream to read the thumbnail image from
+     */
+    public void setThumbnail(String filename, InputStream imageData) throws IOException {
         PackagePart tPart = getThumbnailPart();
         if (tPart == null) {
             // New thumbnail
@@ -182,173 +182,173 @@ public class POIXMLProperties {
             String newType = ContentTypes.getContentTypeFromFileExtension(filename); 
             if (! newType.equals(tPart.getContentType())) {
                 throw new IllegalArgumentException("Can't set a Thumbnail of type " + 
-                               newType + " when existing one is of a different type " +
-                               tPart.getContentType());
+                        newType + " when existing one is of a different type " +
+                        tPart.getContentType());
             }
             StreamHelper.copyStream(imageData, tPart.getOutputStream());
         }
-       }
-
-       /**
-        * Commit changes to the underlying OPC package
-        
-        * @throws IOException if the properties can't be saved
-        * @throws POIXMLException if the properties are erroneous
-        */
-       public void commit() throws IOException{
-
-               if(extPart == null && !NEW_EXT_INSTANCE.toString().equals(ext.props.toString())){
-                       try {
-                               PackagePartName prtname = PackagingURIHelper.createPartName("/docProps/app.xml");
-                               pkg.addRelationship(prtname, TargetMode.INTERNAL, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties");
-                               extPart = pkg.createPart(prtname, "application/vnd.openxmlformats-officedocument.extended-properties+xml");
-                       } catch (InvalidFormatException e){
-                               throw new POIXMLException(e);
-                       }
-               }
-               if(custPart == null && !NEW_CUST_INSTANCE.toString().equals(cust.props.toString())){
-                       try {
-                               PackagePartName prtname = PackagingURIHelper.createPartName("/docProps/custom.xml");
-                               pkg.addRelationship(prtname, TargetMode.INTERNAL, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties");
-                               custPart = pkg.createPart(prtname, "application/vnd.openxmlformats-officedocument.custom-properties+xml");
-                       } catch (InvalidFormatException e){
-                               throw new POIXMLException(e);
-                       }
-               }
-               if(extPart != null){
-                       OutputStream out = extPart.getOutputStream();
-                       if (extPart.getSize() > 0) {
-                           extPart.clear();
-                       }
-                       ext.props.save(out, DEFAULT_XML_OPTIONS);
-                       out.close();
-               }
-               if(custPart != null){
-                       OutputStream out = custPart.getOutputStream();
-                       cust.props.save(out, DEFAULT_XML_OPTIONS);
-                       out.close();
-               }
-       }
-
-       /**
-        * The core document properties
-        */
-       public static class CoreProperties {
-               private PackagePropertiesPart part;
-               private CoreProperties(PackagePropertiesPart part) {
-                       this.part = part;
-               }
-
-               public String getCategory() {
-                       return part.getCategoryProperty().getValue();
-               }
-               public void setCategory(String category) {
-                       part.setCategoryProperty(category);
-               }
-               public String getContentStatus() {
-                       return part.getContentStatusProperty().getValue();
-               }
-               public void setContentStatus(String contentStatus) {
-                       part.setContentStatusProperty(contentStatus);
-               }
-               public String getContentType() {
-                       return part.getContentTypeProperty().getValue();
-               }
-               public void setContentType(String contentType) {
-                       part.setContentTypeProperty(contentType);
-               }
-               public Date getCreated() {
-                       return part.getCreatedProperty().getValue();
-               }
-               public void setCreated(Nullable<Date> date) {
-                       part.setCreatedProperty(date);
-               }
-               public void setCreated(String date) {
-                       part.setCreatedProperty(date);
-               }
-               public String getCreator() {
-                       return part.getCreatorProperty().getValue();
-               }
-               public void setCreator(String creator) {
-                       part.setCreatorProperty(creator);
-               }
-               public String getDescription() {
-                       return part.getDescriptionProperty().getValue();
-               }
-               public void setDescription(String description) {
-                       part.setDescriptionProperty(description);
-               }
-               public String getIdentifier() {
-                       return part.getIdentifierProperty().getValue();
-               }
-               public void setIdentifier(String identifier) {
-                       part.setIdentifierProperty(identifier);
-               }
-               public String getKeywords() {
-                       return part.getKeywordsProperty().getValue();
-               }
-               public void setKeywords(String keywords) {
-                       part.setKeywordsProperty(keywords);
-               }
-               public Date getLastPrinted() {
-                       return part.getLastPrintedProperty().getValue();
-               }
-               public void setLastPrinted(Nullable<Date> date) {
-                       part.setLastPrintedProperty(date);
-               }
-               public void setLastPrinted(String date) {
-                       part.setLastPrintedProperty(date);
-               }
-               public Date getModified() {
-                       return part.getModifiedProperty().getValue();
-               }
-               public void setModified(Nullable<Date> date) {
-                       part.setModifiedProperty(date);
-               }
-               public void setModified(String date) {
-                       part.setModifiedProperty(date);
-               }
-               public String getSubject() {
-                       return part.getSubjectProperty().getValue();
-               }
-               public void setSubjectProperty(String subject) {
-                       part.setSubjectProperty(subject);
-               }
-               public void setTitle(String title) {
-                       part.setTitleProperty(title);
-               }
-               public String getTitle() {
-                       return part.getTitleProperty().getValue();
-               }
-               public String getRevision() {
-                       return part.getRevisionProperty().getValue();
-               }
-               public void setRevision(String revision) {
-                       try {
-                               Long.valueOf(revision);
-                               part.setRevisionProperty(revision);
-                       }
-                       catch (NumberFormatException e) {}
-               }
-
-               public PackagePropertiesPart getUnderlyingProperties() {
-                       return part;
-               }
-       }
-
-       /**
-        * Extended document properties
-        */
-       public static class ExtendedProperties {
-               private org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.PropertiesDocument props;
-               private ExtendedProperties(org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.PropertiesDocument props) {
-                       this.props = props;
-               }
-
-               public org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.CTProperties getUnderlyingProperties() {
-                       return props.getProperties();
-               }
-               
+    }
+
+    /**
+     * Commit changes to the underlying OPC package
+     * 
+     * @throws IOException if the properties can't be saved
+     * @throws POIXMLException if the properties are erroneous
+     */
+    public void commit() throws IOException{
+
+        if(extPart == null && !NEW_EXT_INSTANCE.toString().equals(ext.props.toString())){
+            try {
+                PackagePartName prtname = PackagingURIHelper.createPartName("/docProps/app.xml");
+                pkg.addRelationship(prtname, TargetMode.INTERNAL, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties");
+                extPart = pkg.createPart(prtname, "application/vnd.openxmlformats-officedocument.extended-properties+xml");
+            } catch (InvalidFormatException e){
+                throw new POIXMLException(e);
+            }
+        }
+        if(custPart == null && !NEW_CUST_INSTANCE.toString().equals(cust.props.toString())){
+            try {
+                PackagePartName prtname = PackagingURIHelper.createPartName("/docProps/custom.xml");
+                pkg.addRelationship(prtname, TargetMode.INTERNAL, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties");
+                custPart = pkg.createPart(prtname, "application/vnd.openxmlformats-officedocument.custom-properties+xml");
+            } catch (InvalidFormatException e){
+                throw new POIXMLException(e);
+            }
+        }
+        if(extPart != null){
+            OutputStream out = extPart.getOutputStream();
+            if (extPart.getSize() > 0) {
+                extPart.clear();
+            }
+            ext.props.save(out, DEFAULT_XML_OPTIONS);
+            out.close();
+        }
+        if(custPart != null){
+            OutputStream out = custPart.getOutputStream();
+            cust.props.save(out, DEFAULT_XML_OPTIONS);
+            out.close();
+        }
+    }
+
+    /**
+     * The core document properties
+     */
+    public static class CoreProperties {
+        private PackagePropertiesPart part;
+        private CoreProperties(PackagePropertiesPart part) {
+            this.part = part;
+        }
+
+        public String getCategory() {
+            return part.getCategoryProperty().getValue();
+        }
+        public void setCategory(String category) {
+            part.setCategoryProperty(category);
+        }
+        public String getContentStatus() {
+            return part.getContentStatusProperty().getValue();
+        }
+        public void setContentStatus(String contentStatus) {
+            part.setContentStatusProperty(contentStatus);
+        }
+        public String getContentType() {
+            return part.getContentTypeProperty().getValue();
+        }
+        public void setContentType(String contentType) {
+            part.setContentTypeProperty(contentType);
+        }
+        public Date getCreated() {
+            return part.getCreatedProperty().getValue();
+        }
+        public void setCreated(Nullable<Date> date) {
+            part.setCreatedProperty(date);
+        }
+        public void setCreated(String date) {
+            part.setCreatedProperty(date);
+        }
+        public String getCreator() {
+            return part.getCreatorProperty().getValue();
+        }
+        public void setCreator(String creator) {
+            part.setCreatorProperty(creator);
+        }
+        public String getDescription() {
+            return part.getDescriptionProperty().getValue();
+        }
+        public void setDescription(String description) {
+            part.setDescriptionProperty(description);
+        }
+        public String getIdentifier() {
+            return part.getIdentifierProperty().getValue();
+        }
+        public void setIdentifier(String identifier) {
+            part.setIdentifierProperty(identifier);
+        }
+        public String getKeywords() {
+            return part.getKeywordsProperty().getValue();
+        }
+        public void setKeywords(String keywords) {
+            part.setKeywordsProperty(keywords);
+        }
+        public Date getLastPrinted() {
+            return part.getLastPrintedProperty().getValue();
+        }
+        public void setLastPrinted(Nullable<Date> date) {
+            part.setLastPrintedProperty(date);
+        }
+        public void setLastPrinted(String date) {
+            part.setLastPrintedProperty(date);
+        }
+        public Date getModified() {
+            return part.getModifiedProperty().getValue();
+        }
+        public void setModified(Nullable<Date> date) {
+            part.setModifiedProperty(date);
+        }
+        public void setModified(String date) {
+            part.setModifiedProperty(date);
+        }
+        public String getSubject() {
+            return part.getSubjectProperty().getValue();
+        }
+        public void setSubjectProperty(String subject) {
+            part.setSubjectProperty(subject);
+        }
+        public void setTitle(String title) {
+            part.setTitleProperty(title);
+        }
+        public String getTitle() {
+            return part.getTitleProperty().getValue();
+        }
+        public String getRevision() {
+            return part.getRevisionProperty().getValue();
+        }
+        public void setRevision(String revision) {
+            try {
+                Long.valueOf(revision);
+                part.setRevisionProperty(revision);
+            }
+            catch (NumberFormatException e) {}
+        }
+
+        public PackagePropertiesPart getUnderlyingProperties() {
+            return part;
+        }
+    }
+
+    /**
+     * Extended document properties
+     */
+    public static class ExtendedProperties {
+        private org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.PropertiesDocument props;
+        private ExtendedProperties(org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.PropertiesDocument props) {
+            this.props = props;
+        }
+
+        public org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.CTProperties getUnderlyingProperties() {
+            return props.getProperties();
+        }
+
         public String getTemplate() {
             if (props.getProperties().isSetTemplate()) {
                 return props.getProperties().getTemplate();
@@ -459,113 +459,113 @@ public class POIXMLProperties {
             }
             return null;
         }
-       }
-
-       /**
-        *  Custom document properties
-        */
-       public static class CustomProperties {
-               /**
-                *  Each custom property element contains an fmtid attribute
-                *  with the same GUID value ({D5CDD505-2E9C-101B-9397-08002B2CF9AE}).
-                */
-               public static final String FORMAT_ID = "{D5CDD505-2E9C-101B-9397-08002B2CF9AE}";
-
-               private org.openxmlformats.schemas.officeDocument.x2006.customProperties.PropertiesDocument props;
-               private CustomProperties(org.openxmlformats.schemas.officeDocument.x2006.customProperties.PropertiesDocument props) {
-                       this.props = props;
-               }
-
-               public org.openxmlformats.schemas.officeDocument.x2006.customProperties.CTProperties getUnderlyingProperties() {
-                       return props.getProperties();
-               }
-
-               /**
-                * Add a new property
-                *
-                * @param name the property name
-                * @throws IllegalArgumentException if a property with this name already exists
-                */
-               private CTProperty add(String name) {
-                       if(contains(name)) {
-                               throw new IllegalArgumentException("A property with this name " +
-                                               "already exists in the custom properties");
-                       }
-
-                       CTProperty p = props.getProperties().addNewProperty();
-                       int pid = nextPid();
-                       p.setPid(pid);
-                       p.setFmtid(FORMAT_ID);
-                       p.setName(name);
-                       return p;
-               }
-
-               /**
-                * Add a new string property
-                
-                * @param name the property name
-                * @param value the property value
-                *
-                * @throws IllegalArgumentException if a property with this name already exists
-                */
-                public void addProperty(String name, String value){
-                       CTProperty p = add(name);
-                       p.setLpwstr(value);
-               }
-
-               /**
-                * Add a new double property
-                *
+    }
+
+    /**
+     *  Custom document properties
+     */
+    public static class CustomProperties {
+        /**
+         *  Each custom property element contains an fmtid attribute
+         *  with the same GUID value ({D5CDD505-2E9C-101B-9397-08002B2CF9AE}).
+         */
+        public static final String FORMAT_ID = "{D5CDD505-2E9C-101B-9397-08002B2CF9AE}";
+
+        private org.openxmlformats.schemas.officeDocument.x2006.customProperties.PropertiesDocument props;
+        private CustomProperties(org.openxmlformats.schemas.officeDocument.x2006.customProperties.PropertiesDocument props) {
+            this.props = props;
+        }
+
+        public org.openxmlformats.schemas.officeDocument.x2006.customProperties.CTProperties getUnderlyingProperties() {
+            return props.getProperties();
+        }
+
+        /**
+         * Add a new property
+         *
+         * @param name the property name
+         * @throws IllegalArgumentException if a property with this name already exists
+         */
+        private CTProperty add(String name) {
+            if(contains(name)) {
+                throw new IllegalArgumentException("A property with this name " +
+                        "already exists in the custom properties");
+            }
+
+            CTProperty p = props.getProperties().addNewProperty();
+            int pid = nextPid();
+            p.setPid(pid);
+            p.setFmtid(FORMAT_ID);
+            p.setName(name);
+            return p;
+        }
+
+        /**
+         * Add a new string property
+         * 
+         * @param name the property name
+         * @param value the property value
+         *
+         * @throws IllegalArgumentException if a property with this name already exists
+         */
+        public void addProperty(String name, String value){
+            CTProperty p = add(name);
+            p.setLpwstr(value);
+        }
+
+        /**
+         * Add a new double property
+         *
          * @param name the property name
          * @param value the property value
          *
-                * @throws IllegalArgumentException if a property with this name already exists
-                */
-               public void addProperty(String name, double value){
-                       CTProperty p = add(name);
-                       p.setR8(value);
-               }
-
-               /**
-                * Add a new integer property
-                *
+         * @throws IllegalArgumentException if a property with this name already exists
+         */
+        public void addProperty(String name, double value){
+            CTProperty p = add(name);
+            p.setR8(value);
+        }
+
+        /**
+         * Add a new integer property
+         *
          * @param name the property name
          * @param value the property value
          *
-                * @throws IllegalArgumentException if a property with this name already exists
-                */
-               public void addProperty(String name, int value){
-                       CTProperty p = add(name);
-                       p.setI4(value);
-               }
-
-               /**
-                * Add a new boolean property
-                *
+         * @throws IllegalArgumentException if a property with this name already exists
+         */
+        public void addProperty(String name, int value){
+            CTProperty p = add(name);
+            p.setI4(value);
+        }
+
+        /**
+         * Add a new boolean property
+         *
          * @param name the property name
          * @param value the property value
          *
-                * @throws IllegalArgumentException if a property with this name already exists
-                */
-               public void addProperty(String name, boolean value){
-                       CTProperty p = add(name);
-                       p.setBool(value);
-               }
-
-               /**
-                * Generate next id that uniquely relates a custom property
-                *
-                * @return next property id starting with 2
-                */
+         * @throws IllegalArgumentException if a property with this name already exists
+         */
+        public void addProperty(String name, boolean value){
+            CTProperty p = add(name);
+            p.setBool(value);
+        }
+
+        /**
+         * Generate next id that uniquely relates a custom property
+         *
+         * @return next property id starting with 2
+         */
         protected int nextPid() {
-                       int propid = 1;
-                       for(CTProperty p : props.getProperties().getPropertyArray()){
-                               if(p.getPid() > propid) propid = p.getPid();
-                       }
-                       return propid + 1;
-               }
-
-       /**
+            int propid = 1;
+            for(CTProperty p : props.getProperties().getPropertyArray()){
+                if(p.getPid() > propid) propid = p.getPid();
+            }
+            return propid + 1;
+        }
+
+        /**
          * Check if a property with this name already exists in the collection of custom properties
          *
          * @param name the name to check
@@ -577,7 +577,7 @@ public class POIXMLProperties {
             }
             return false;
         }
-        
+
         /**
          * Retrieve the custom property with this name, or null if none exists.
          *
index e70496f3f481f4506faa1923329ae649edaf7eca..fcd50ada6d319db96c7dae77bc74f78a18f4da44 100644 (file)
@@ -461,32 +461,32 @@ public abstract class OPCPackage implements RelationshipSource, Closeable {
                this.contentTypeManager.clearAll();
        }
 
-       /**
-        * Close the package WITHOUT saving its content. Reinitialize this package
-        * and cancel all changes done to it.
-        */
-       public void revert() {
-               revertImpl();
-       }
+    /**
+     * Close the package WITHOUT saving its content. Reinitialize this package
+     * and cancel all changes done to it.
+     */
+    public void revert() {
+        revertImpl();
+    }
 
-       /**
-        * Add a thumbnail to the package. This method is provided to make easier
-        * the addition of a thumbnail in a package. You can do the same work by
-        * using the traditionnal relationship and part mechanism.
-        *
-        * @param path The full path to the image file.
-        */
-       public void addThumbnail(String path) throws IOException {
+    /**
+     * Add a thumbnail to the package. This method is provided to make easier
+     * the addition of a thumbnail in a package. You can do the same work by
+     * using the traditionnal relationship and part mechanism.
+     *
+     * @param path The full path to the image file.
+     */
+    public void addThumbnail(String path) throws IOException {
         // Check parameter
         if (path == null || path.isEmpty()) {
             throw new IllegalArgumentException("path");
         }
         String name = path.substring(path.lastIndexOf(File.separatorChar) + 1);
-        
+
         FileInputStream is = new FileInputStream(path);
         addThumbnail(name, is);
         is.close();
-       }
+    }
     /**
      * Add a thumbnail to the package. This method is provided to make easier
      * the addition of a thumbnail in a package. You can do the same work by
@@ -495,60 +495,60 @@ public abstract class OPCPackage implements RelationshipSource, Closeable {
      * @param path The full path to the image file.
      */
     public void addThumbnail(String filename, InputStream data) throws IOException {
-               // Check parameter
+        // Check parameter
         if (filename == null || filename.isEmpty()) {
-                       throw new IllegalArgumentException("filename");
-               }
+            throw new IllegalArgumentException("filename");
+        }
 
-               // Create the thumbnail part name
-               String contentType = ContentTypes
-                               .getContentTypeFromFileExtension(filename);
-               PackagePartName thumbnailPartName = null;
-               try {
-                       thumbnailPartName = PackagingURIHelper.createPartName("/docProps/"
-                                       + filename);
-               } catch (InvalidFormatException e) {
-                   String partName = "/docProps/thumbnail" +
-                         filename.substring(filename.lastIndexOf(".") + 1);
-                       try {
-                               thumbnailPartName = PackagingURIHelper.createPartName(partName);
-                       } catch (InvalidFormatException e2) {
-                               throw new InvalidOperationException(
-                                               "Can't add a thumbnail file named '" + filename + "'", e2);
-                       }
-               }
+        // Create the thumbnail part name
+        String contentType = ContentTypes
+                .getContentTypeFromFileExtension(filename);
+        PackagePartName thumbnailPartName = null;
+        try {
+            thumbnailPartName = PackagingURIHelper.createPartName("/docProps/"
+                    + filename);
+        } catch (InvalidFormatException e) {
+            String partName = "/docProps/thumbnail" +
+                    filename.substring(filename.lastIndexOf(".") + 1);
+            try {
+                thumbnailPartName = PackagingURIHelper.createPartName(partName);
+            } catch (InvalidFormatException e2) {
+                throw new InvalidOperationException(
+                        "Can't add a thumbnail file named '" + filename + "'", e2);
+            }
+        }
 
-               // Check if part already exist
-               if (this.getPart(thumbnailPartName) != null)
-                       throw new InvalidOperationException(
-                                       "You already add a thumbnail named '" + filename + "'");
+        // Check if part already exist
+        if (this.getPart(thumbnailPartName) != null)
+            throw new InvalidOperationException(
+                    "You already add a thumbnail named '" + filename + "'");
 
-               // Add the thumbnail part to this package.
-               PackagePart thumbnailPart = this.createPart(thumbnailPartName,
-                               contentType, false);
+        // Add the thumbnail part to this package.
+        PackagePart thumbnailPart = this.createPart(thumbnailPartName,
+                contentType, false);
 
-               // Add the relationship between the package and the thumbnail part
-               this.addRelationship(thumbnailPartName, TargetMode.INTERNAL,
-                               PackageRelationshipTypes.THUMBNAIL);
+        // Add the relationship between the package and the thumbnail part
+        this.addRelationship(thumbnailPartName, TargetMode.INTERNAL,
+                PackageRelationshipTypes.THUMBNAIL);
 
-               // Copy file data to the newly created part
-               StreamHelper.copyStream(data, thumbnailPart.getOutputStream());
-       }
+        // Copy file data to the newly created part
+        StreamHelper.copyStream(data, thumbnailPart.getOutputStream());
+    }
 
-       /**
-        * Throws an exception if the package access mode is in read only mode
-        * (PackageAccess.Read).
-        *
-        * @throws InvalidOperationException
-        *             Throws if a writing operation is done on a read only package.
-        * @see org.apache.poi.openxml4j.opc.PackageAccess
-        */
-       void throwExceptionIfReadOnly() throws InvalidOperationException {
-               if (packageAccess == PackageAccess.READ) {
-                       throw new InvalidOperationException(
-                                       "Operation not allowed, document open in read only mode!");
-               }
-       }
+    /**
+     * Throws an exception if the package access mode is in read only mode
+     * (PackageAccess.Read).
+     *
+     * @throws InvalidOperationException
+     *             Throws if a writing operation is done on a read only package.
+     * @see org.apache.poi.openxml4j.opc.PackageAccess
+     */
+    void throwExceptionIfReadOnly() throws InvalidOperationException {
+        if (packageAccess == PackageAccess.READ) {
+            throw new InvalidOperationException(
+                    "Operation not allowed, document open in read only mode!");
+        }
+    }
 
        /**
         * Throws an exception if the package access mode is in write only mode
index 0a342801541e19a25893e2e0e1e5024899f9d134..3cd680c55c58df23d6813f0606e81f5b6cab8333 100644 (file)
@@ -45,74 +45,74 @@ import org.junit.Test;
 public final class TestPOIXMLProperties {
     private XWPFDocument sampleDoc;
     private XWPFDocument sampleNoThumb;
-       private POIXMLProperties _props;
-       private CoreProperties _coreProperties;
+    private POIXMLProperties _props;
+    private CoreProperties _coreProperties;
 
-       @Before
-       public void setUp() throws IOException {
-               sampleDoc = XWPFTestDataSamples.openSampleDocument("documentProperties.docx");
-               sampleNoThumb = XWPFTestDataSamples.openSampleDocument("SampleDoc.docx");
+    @Before
+    public void setUp() throws IOException {
+        sampleDoc = XWPFTestDataSamples.openSampleDocument("documentProperties.docx");
+        sampleNoThumb = XWPFTestDataSamples.openSampleDocument("SampleDoc.docx");
         assertNotNull(sampleDoc);
         assertNotNull(sampleNoThumb);
-               _props = sampleDoc.getProperties();
-               _coreProperties = _props.getCoreProperties();
-               assertNotNull(_props);
-       }
-       
-       @After
-       public void closeResources() throws Exception {
-           sampleDoc.close();
-           sampleNoThumb.close();
-       }
+        _props = sampleDoc.getProperties();
+        _coreProperties = _props.getCoreProperties();
+        assertNotNull(_props);
+    }
+
+    @After
+    public void closeResources() throws Exception {
+        sampleDoc.close();
+        sampleNoThumb.close();
+    }
 
-       @Test
-       public void testWorkbookExtendedProperties() throws Exception {
-               XSSFWorkbook workbook = new XSSFWorkbook();
-               POIXMLProperties props = workbook.getProperties();
-               assertNotNull(props);
+    @Test
+    public void testWorkbookExtendedProperties() throws Exception {
+        XSSFWorkbook workbook = new XSSFWorkbook();
+        POIXMLProperties props = workbook.getProperties();
+        assertNotNull(props);
 
-               org.apache.poi.POIXMLProperties.ExtendedProperties properties =
-                               props.getExtendedProperties();
+        org.apache.poi.POIXMLProperties.ExtendedProperties properties =
+                props.getExtendedProperties();
 
-               org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.CTProperties
-                               ctProps = properties.getUnderlyingProperties();
+        org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.CTProperties
+                ctProps = properties.getUnderlyingProperties();
 
 
-               String appVersion = "3.5 beta";
-               String application = "POI";
+        String appVersion = "3.5 beta";
+        String application = "POI";
 
-               ctProps.setApplication(application);
-               ctProps.setAppVersion(appVersion);
+        ctProps.setApplication(application);
+        ctProps.setAppVersion(appVersion);
 
-               XSSFWorkbook newWorkbook =
-                               XSSFTestDataSamples.writeOutAndReadBack(workbook);
-               workbook.close();
-               assertTrue(workbook != newWorkbook);
+        XSSFWorkbook newWorkbook =
+                XSSFTestDataSamples.writeOutAndReadBack(workbook);
+        workbook.close();
+        assertTrue(workbook != newWorkbook);
 
 
-               POIXMLProperties newProps = newWorkbook.getProperties();
-               assertNotNull(newProps);
-               org.apache.poi.POIXMLProperties.ExtendedProperties newProperties =
-                               newProps.getExtendedProperties();
+        POIXMLProperties newProps = newWorkbook.getProperties();
+        assertNotNull(newProps);
+        org.apache.poi.POIXMLProperties.ExtendedProperties newProperties =
+                newProps.getExtendedProperties();
 
         assertEquals(application, newProperties.getApplication());
         assertEquals(appVersion, newProperties.getAppVersion());
-        
-               org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.CTProperties
-                               newCtProps = newProperties.getUnderlyingProperties();
 
-               assertEquals(application, newCtProps.getApplication());
-               assertEquals(appVersion, newCtProps.getAppVersion());
-               
-               newWorkbook.close();
-       }
+        org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.CTProperties
+                newCtProps = newProperties.getUnderlyingProperties();
+
+        assertEquals(application, newCtProps.getApplication());
+        assertEquals(appVersion, newCtProps.getAppVersion());
+
+        newWorkbook.close();
+    }
 
 
     /**
      * Test usermodel API for setting custom properties
      */
-       @Test
-       public void testCustomProperties() throws Exception {
+    @Test
+    public void testCustomProperties() throws Exception {
         POIXMLDocument wb1 = new XSSFWorkbook();
 
         POIXMLProperties.CustomProperties customProps = wb1.getProperties().getCustomProperties();
@@ -162,27 +162,27 @@ public final class TestPOIXMLProperties {
         wb2.close();
     }
 
-       @Test
-       public void testDocumentProperties() {
-               String category = _coreProperties.getCategory();
-               assertEquals("test", category);
-               String contentStatus = "Draft";
-               _coreProperties.setContentStatus(contentStatus);
-               assertEquals("Draft", contentStatus);
-               Date created = _coreProperties.getCreated();
-               // the original file contains a following value: 2009-07-20T13:12:00Z
-               assertTrue(dateTimeEqualToUTCString(created, "2009-07-20T13:12:00Z"));
-               String creator = _coreProperties.getCreator();
-               assertEquals("Paolo Mottadelli", creator);
-               String subject = _coreProperties.getSubject();
-               assertEquals("Greetings", subject);
-               String title = _coreProperties.getTitle();
-               assertEquals("Hello World", title);
-       }
-
-       @Test
-       public void testTransitiveSetters() throws IOException {
-               XWPFDocument doc = new XWPFDocument();
+    @Test
+    public void testDocumentProperties() {
+        String category = _coreProperties.getCategory();
+        assertEquals("test", category);
+        String contentStatus = "Draft";
+        _coreProperties.setContentStatus(contentStatus);
+        assertEquals("Draft", contentStatus);
+        Date created = _coreProperties.getCreated();
+        // the original file contains a following value: 2009-07-20T13:12:00Z
+        assertTrue(dateTimeEqualToUTCString(created, "2009-07-20T13:12:00Z"));
+        String creator = _coreProperties.getCreator();
+        assertEquals("Paolo Mottadelli", creator);
+        String subject = _coreProperties.getSubject();
+        assertEquals("Greetings", subject);
+        String title = _coreProperties.getTitle();
+        assertEquals("Hello World", title);
+    }
+
+    @Test
+    public void testTransitiveSetters() throws IOException {
+        XWPFDocument doc = new XWPFDocument();
         CoreProperties cp = doc.getProperties().getCoreProperties();
 
 
@@ -198,60 +198,59 @@ public final class TestPOIXMLProperties {
         doc2.close();
     }
 
-       @Test
-       public void testGetSetRevision() {
-               String revision = _coreProperties.getRevision();
-               assertTrue("Revision number is 1", Integer.parseInt(revision) > 1);
-               _coreProperties.setRevision("20");
-               assertEquals("20", _coreProperties.getRevision());
-               _coreProperties.setRevision("20xx");
-               assertEquals("20", _coreProperties.getRevision());
-       }
-       
-       public static boolean dateTimeEqualToUTCString(Date dateTime, String utcString) {
-               Calendar utcCalendar = LocaleUtil.getLocaleCalendar(LocaleUtil.TIMEZONE_UTC);
+    @Test
+    public void testGetSetRevision() {
+        String revision = _coreProperties.getRevision();
+        assertTrue("Revision number is 1", Integer.parseInt(revision) > 1);
+        _coreProperties.setRevision("20");
+        assertEquals("20", _coreProperties.getRevision());
+        _coreProperties.setRevision("20xx");
+        assertEquals("20", _coreProperties.getRevision());
+    }
+
+    public static boolean dateTimeEqualToUTCString(Date dateTime, String utcString) {
+        Calendar utcCalendar = LocaleUtil.getLocaleCalendar(LocaleUtil.TIMEZONE_UTC);
         utcCalendar.setTimeInMillis(dateTime.getTime());
         String dateTimeUtcString = utcCalendar.get(Calendar.YEAR) + "-" + 
-               zeroPad((utcCalendar.get(Calendar.MONTH)+1)) + "-" + 
-               zeroPad(utcCalendar.get(Calendar.DAY_OF_MONTH)) + "T" + 
-               zeroPad(utcCalendar.get(Calendar.HOUR_OF_DAY)) + ":" +
-               zeroPad(utcCalendar.get(Calendar.MINUTE)) + ":" + 
-               zeroPad(utcCalendar.get(Calendar.SECOND)) + "Z";
-               
-               
+                zeroPad((utcCalendar.get(Calendar.MONTH)+1)) + "-" + 
+                zeroPad(utcCalendar.get(Calendar.DAY_OF_MONTH)) + "T" + 
+                zeroPad(utcCalendar.get(Calendar.HOUR_OF_DAY)) + ":" +
+                zeroPad(utcCalendar.get(Calendar.MINUTE)) + ":" + 
+                zeroPad(utcCalendar.get(Calendar.SECOND)) + "Z";
+
         return utcString.equals(dateTimeUtcString);
     }
-       
-       public void testThumbnails() throws Exception {
-           POIXMLProperties noThumbProps = sampleNoThumb.getProperties();
-           
-           assertNotNull(_props.getThumbnailPart());
-           assertNull(noThumbProps.getThumbnailPart());
-        
+
+    public void testThumbnails() throws Exception {
+        POIXMLProperties noThumbProps = sampleNoThumb.getProperties();
+
+        assertNotNull(_props.getThumbnailPart());
+        assertNull(noThumbProps.getThumbnailPart());
+
         assertNotNull(_props.getThumbnailFilename());
         assertNull(noThumbProps.getThumbnailFilename());
-        
+
         assertNotNull(_props.getThumbnailImage());
         assertNull(noThumbProps.getThumbnailImage());
-        
+
         assertEquals("thumbnail.jpeg", _props.getThumbnailFilename());
-        
-        
+
+
         // Adding / changing
         noThumbProps.setThumbnail("Testing.png", new ByteArrayInputStream(new byte[1]));
         assertNotNull(noThumbProps.getThumbnailPart());
         assertEquals("Testing.png", noThumbProps.getThumbnailFilename());
         assertNotNull(noThumbProps.getThumbnailImage());
         assertEquals(1, noThumbProps.getThumbnailImage().available());
-        
+
         noThumbProps.setThumbnail("Testing2.png", new ByteArrayInputStream(new byte[2]));
         assertNotNull(noThumbProps.getThumbnailPart());
         assertEquals("Testing.png", noThumbProps.getThumbnailFilename());
         assertNotNull(noThumbProps.getThumbnailImage());
         assertEquals(2, noThumbProps.getThumbnailImage().available());
-       }
+    }
 
-       private static String zeroPad(long i) {
+    private static String zeroPad(long i) {
         if (i >= 0 && i <=9) {
             return "0" + i;
         } else {