aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Burch <nick@apache.org>2016-01-13 07:26:26 +0000
committerNick Burch <nick@apache.org>2016-01-13 07:26:26 +0000
commit11a38182f5cd0076a0ad7cdef5c0b82ea9538258 (patch)
treea023db9a94874f9ca725b2ba824e41dd42f6eba5
parent7150bcd3580ef1e0e8a579d95ddb32ec005dbc75 (diff)
downloadpoi-11a38182f5cd0076a0ad7cdef5c0b82ea9538258.tar.gz
poi-11a38182f5cd0076a0ad7cdef5c0b82ea9538258.zip
#58847 Getters/setters/removers for the additional well-known document summary information properties from Office 12
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1724363 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--src/java/org/apache/poi/hpsf/DocumentSummaryInformation.java241
-rw-r--r--src/java/org/apache/poi/hpsf/wellknown/PropertyIDMap.java2
2 files changed, 242 insertions, 1 deletions
diff --git a/src/java/org/apache/poi/hpsf/DocumentSummaryInformation.java b/src/java/org/apache/poi/hpsf/DocumentSummaryInformation.java
index 0dacd0d97c..a62c21c8ec 100644
--- a/src/java/org/apache/poi/hpsf/DocumentSummaryInformation.java
+++ b/src/java/org/apache/poi/hpsf/DocumentSummaryInformation.java
@@ -556,8 +556,249 @@ public class DocumentSummaryInformation extends SpecialPropertySet
final MutableSection s = (MutableSection) getFirstSection();
s.removeProperty(PropertyIDMap.PID_LINKSDIRTY);
}
+
+
+ /**
+ * <p>Returns the character count including whitespace, or 0 if the
+ * {@link DocumentSummaryInformation} does not contain this char count.</p>
+ * <p>This is the whitespace-including version of {@link SummaryInformation#getCharCount()}
+ *
+ * @return The character count or <code>null</code>
+ */
+ public int getCharCountWithSpaces()
+ {
+ return getPropertyIntValue(PropertyIDMap.PID_CCHWITHSPACES);
+ }
+
+ /**
+ * Sets the character count including whitespace
+ *
+ * @param charCount The character count to set.
+ */
+ public void setCharCountWithSpaces(int count)
+ {
+ final MutableSection s = (MutableSection) getFirstSection();
+ s.setProperty(PropertyIDMap.PID_CCHWITHSPACES, count);
+ }
+
+ /**
+ * Removes the character count
+ */
+ public void removeCharCountWithSpaces()
+ {
+ final MutableSection s = (MutableSection) getFirstSection();
+ s.removeProperty(PropertyIDMap.PID_CCHWITHSPACES);
+ }
+
+
+ /**
+ * <p>Get if the User Defined Property Set has been updated outside of the
+ * Application.</p>
+ * <p>If it has (true), the hyperlinks should be updated on document load.</p>
+ */
+ public boolean getHyperlinksChanged()
+ {
+ return getPropertyBooleanValue(PropertyIDMap.PID_HYPERLINKSCHANGED);
+ }
+
+ /**
+ * Set the flag for if the User Defined Property Set has been updated outside
+ * of the Application.
+ */
+ public void setHyperlinksChanged(boolean changed)
+ {
+ final MutableSection s = (MutableSection) getFirstSection();
+ s.setProperty(PropertyIDMap.PID_HYPERLINKSCHANGED, changed);
+ }
+
+ /**
+ * Removes the flag for if the User Defined Property Set has been updated
+ * outside of the Application.
+ */
+ public void removeHyperlinksChanged()
+ {
+ final MutableSection s = (MutableSection) getFirstSection();
+ s.removeProperty(PropertyIDMap.PID_HYPERLINKSCHANGED);
+ }
+
+
+ /**
+ * <p>Gets the version of the Application which wrote the
+ * Property set, stored with the two high order bytes having the major
+ * version number, and the two low order bytes the minor version number.</p>
+ * <p>This will be 0 if no version is set.</p>
+ */
+ public int getApplicationVersion()
+ {
+ return getPropertyIntValue(PropertyIDMap.PID_VERSION);
+ }
+
+ /**
+ * Sets the Application version, which must be a 4 byte int with
+ * the two high order bytes having the major version number, and the
+ * two low order bytes the minor version number.
+ */
+ public void setApplicationVersion(int version)
+ {
+ final MutableSection s = (MutableSection) getFirstSection();
+ s.setProperty(PropertyIDMap.PID_VERSION, version);
+ }
+
+ /**
+ * Removes the Application Version
+ */
+ public void removeApplicationVersion()
+ {
+ final MutableSection s = (MutableSection) getFirstSection();
+ s.removeProperty(PropertyIDMap.PID_VERSION);
+ }
+
+
+ /**
+ * <p>Returns the VBA digital signature for the VBA project
+ * embedded in the document (or <code>null</code>).</p>
+ */
+ public byte[] getVBADigitalSignature()
+ {
+ Object value = getProperty(PropertyIDMap.PID_DIGSIG);
+ if (value != null && value instanceof byte[]) {
+ return (byte[])value;
+ }
+ return null;
+ }
+
+ /**
+ * <p>Sets the VBA digital signature for the VBA project
+ * embedded in the document.</p>
+ *
+ * @param signature VBA Digital Signature for the project
+ */
+ public void setVBADigitalSignature(byte[] signature)
+ {
+ final MutableSection s = (MutableSection) getFirstSection();
+ s.setProperty(PropertyIDMap.PID_DIGSIG, signature);
+ }
+
+ /**
+ * Removes the VBA Digital Signature
+ */
+ public void removeVBADigitalSignature()
+ {
+ final MutableSection s = (MutableSection) getFirstSection();
+ s.removeProperty(PropertyIDMap.PID_DIGSIG);
+ }
+
+ /**
+ * <p>Gets the content type of the file (or <code>null</code>).</p>
+ */
+ public String getContentType()
+ {
+ return getPropertyStringValue(PropertyIDMap.PID_CONTENTTYPE);
+ }
+
+ /**
+ * Sets the content type of the file
+ */
+ public void setContentType(String type)
+ {
+ final MutableSection s = (MutableSection) getFirstSection();
+ s.setProperty(PropertyIDMap.PID_CONTENTTYPE, type);
+ }
+
+ /**
+ * Removes the content type of the file
+ */
+ public void removeContentType()
+ {
+ final MutableSection s = (MutableSection) getFirstSection();
+ s.removeProperty(PropertyIDMap.PID_CONTENTTYPE);
+ }
+
+ /**
+ * <p>Gets the content status of the file (or <code>null</code>).</p>
+ */
+ public String getContentStatus()
+ {
+ return getPropertyStringValue(PropertyIDMap.PID_CONTENTSTATUS);
+ }
+
+ /**
+ * Sets the content type of the file
+ */
+ public void setContentStatus(String status)
+ {
+ final MutableSection s = (MutableSection) getFirstSection();
+ s.setProperty(PropertyIDMap.PID_CONTENTSTATUS, status);
+ }
+
+ /**
+ * Removes the content status of the file
+ */
+ public void removeContentStatus()
+ {
+ final MutableSection s = (MutableSection) getFirstSection();
+ s.removeProperty(PropertyIDMap.PID_CONTENTSTATUS);
+ }
+
+
+ /**
+ * <p>Gets the document language, which is normally unset and empty
+ * (or <code>null</code>).</p>
+ */
+ public String getLanguage()
+ {
+ return getPropertyStringValue(PropertyIDMap.PID_LANGUAGE);
+ }
+
+ /**
+ * Set the document language
+ */
+ public void setLanguage(String language)
+ {
+ final MutableSection s = (MutableSection) getFirstSection();
+ s.setProperty(PropertyIDMap.PID_LANGUAGE, language);
+ }
+
+ /**
+ * Removes the document language
+ */
+ public void removeLanguage()
+ {
+ final MutableSection s = (MutableSection) getFirstSection();
+ s.removeProperty(PropertyIDMap.PID_LANGUAGE);
+ }
+
+
+ /**
+ * <p>Gets the document version as a string, which is normally unset and empty
+ * (or <code>null</code>).</p>
+ */
+ public String getDocumentVersion()
+ {
+ return getPropertyStringValue(PropertyIDMap.PID_DOCVERSION);
+ }
+
+ /**
+ * Sets the document version string
+ */
+ public void setDocumentVersion(String version)
+ {
+ final MutableSection s = (MutableSection) getFirstSection();
+ s.setProperty(PropertyIDMap.PID_DOCVERSION, version);
+ }
+
+ /**
+ * Removes the document version string
+ */
+ public void removeDocumentVersion()
+ {
+ final MutableSection s = (MutableSection) getFirstSection();
+ s.removeProperty(PropertyIDMap.PID_DOCVERSION);
+ }
+
+
/**
* <p>Gets the custom properties.</p>
*
diff --git a/src/java/org/apache/poi/hpsf/wellknown/PropertyIDMap.java b/src/java/org/apache/poi/hpsf/wellknown/PropertyIDMap.java
index 7d7502b810..72f09ff112 100644
--- a/src/java/org/apache/poi/hpsf/wellknown/PropertyIDMap.java
+++ b/src/java/org/apache/poi/hpsf/wellknown/PropertyIDMap.java
@@ -250,7 +250,7 @@ public class PropertyIDMap extends HashMap<Long,String> {
/**
* <p>This entry contains the version of the Application which wrote the
* Property set, stored with the two high order bytes having the major
- * version number, and hte two low order bytes the minor version number.
+ * version number, and the two low order bytes the minor version number.
*/
public static final int PID_VERSION = 0x17;