aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/org/apache/poi/hpsf/wellknown
diff options
context:
space:
mode:
authorRainer Klute <klute@apache.org>2006-03-03 16:57:55 +0000
committerRainer Klute <klute@apache.org>2006-03-03 16:57:55 +0000
commit73a9af683f7c986421d12e07e680111d94a609c4 (patch)
treeb315b5320a537d72619cae55c393357f4737b5c0 /src/java/org/apache/poi/hpsf/wellknown
parenta36d020021bb41eade6d653005ef42f60a0a609a (diff)
downloadpoi-73a9af683f7c986421d12e07e680111d94a609c4.tar.gz
poi-73a9af683f7c986421d12e07e680111d94a609c4.zip
* Writing support added to the SummaryInformation and DocumentSummaryInformation classes. These classes now have methods for setting and removing properties. Coherent extensions are:
** Documentation section about writing standard properties added to the HPSF HOW-TO. ** Example application added showing how to modify the document summary information. ** Testcases added for testing modifying summary information and document summary information. ** PropertySetFactory extended to create SummaryInformation and DocumentSummaryInformation instances. * Added MutablePropertySet.write(DirectoryEntry, String) to ease writing a property set to a POI filesystem document. * Improved codepage handling. * Bug fixed: Integral values were read and written as unsigned instead of signed. * Reworked the mapping between variant types and Java types: Variant.VT_I4 is mapped to Integer now and Variant.VT_I8 to Long. This might cause incompatibilities if you are doing low-level HPSF programming. * Changed SectionIDMap.DOCUMENT_SUMMARY_INFORMATION_ID from a byte[] to a byte[][] in order to contain the format ID of the first and the second section. This is an incompatible change! * Added PropertySet.getFirstSection(). This method is similar to getSingleSection() won't choke if the property set has more than one section. * Support for low-level reading and writing of Variant.VT_I8 type properties added. * Unnecessary casts removed. * Poibrowser's display format changed slightly. git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@382887 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/java/org/apache/poi/hpsf/wellknown')
-rw-r--r--src/java/org/apache/poi/hpsf/wellknown/PropertyIDMap.java6
-rw-r--r--src/java/org/apache/poi/hpsf/wellknown/SectionIDMap.java34
2 files changed, 25 insertions, 15 deletions
diff --git a/src/java/org/apache/poi/hpsf/wellknown/PropertyIDMap.java b/src/java/org/apache/poi/hpsf/wellknown/PropertyIDMap.java
index 77a17b5224..517af3b1ed 100644
--- a/src/java/org/apache/poi/hpsf/wellknown/PropertyIDMap.java
+++ b/src/java/org/apache/poi/hpsf/wellknown/PropertyIDMap.java
@@ -1,4 +1,3 @@
-
/* ====================================================================
Copyright 2002-2004 Apache Software Foundation
@@ -231,6 +230,11 @@ public class PropertyIDMap extends HashMap
* re-evaluated.</p>
*/
public static final int PID_LINKSDIRTY = 16;
+
+ /**
+ * <p>The highest well-known property ID. Applications are free to use higher values for custom purposes.</p>
+ */
+ public static final int PID_MAX = PID_LINKSDIRTY;
diff --git a/src/java/org/apache/poi/hpsf/wellknown/SectionIDMap.java b/src/java/org/apache/poi/hpsf/wellknown/SectionIDMap.java
index 93e837f2c6..e5e2045896 100644
--- a/src/java/org/apache/poi/hpsf/wellknown/SectionIDMap.java
+++ b/src/java/org/apache/poi/hpsf/wellknown/SectionIDMap.java
@@ -1,6 +1,5 @@
-
/* ====================================================================
- Copyright 2002-2004 Apache Software Foundation
+ Copyright 2002-2006 Apache Software Foundation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -53,16 +52,23 @@ public class SectionIDMap extends HashMap
};
/**
- * <p>The DocumentSummaryInformation's first section's format
- * ID. The second section has a different format ID which is not
- * well-known.</p>
+ * <p>The DocumentSummaryInformation's first and second sections' format
+ * ID.</p>
*/
- public static final byte[] DOCUMENT_SUMMARY_INFORMATION_ID = new byte[]
+ public static final byte[][] DOCUMENT_SUMMARY_INFORMATION_ID = new byte[][]
{
- (byte) 0xD5, (byte) 0xCD, (byte) 0xD5, (byte) 0x02,
- (byte) 0x2E, (byte) 0x9C, (byte) 0x10, (byte) 0x1B,
- (byte) 0x93, (byte) 0x97, (byte) 0x08, (byte) 0x00,
- (byte) 0x2B, (byte) 0x2C, (byte) 0xF9, (byte) 0xAE
+ {
+ (byte) 0xD5, (byte) 0xCD, (byte) 0xD5, (byte) 0x02,
+ (byte) 0x2E, (byte) 0x9C, (byte) 0x10, (byte) 0x1B,
+ (byte) 0x93, (byte) 0x97, (byte) 0x08, (byte) 0x00,
+ (byte) 0x2B, (byte) 0x2C, (byte) 0xF9, (byte) 0xAE
+ },
+ {
+ (byte) 0xD5, (byte) 0xCD, (byte) 0xD5, (byte) 0x05,
+ (byte) 0x2E, (byte) 0x9C, (byte) 0x10, (byte) 0x1B,
+ (byte) 0x93, (byte) 0x97, (byte) 0x08, (byte) 0x00,
+ (byte) 0x2B, (byte) 0x2C, (byte) 0xF9, (byte) 0xAE
+ }
};
/**
@@ -91,7 +97,7 @@ public class SectionIDMap extends HashMap
final SectionIDMap m = new SectionIDMap();
m.put(SUMMARY_INFORMATION_ID,
PropertyIDMap.getSummaryInformationProperties());
- m.put(DOCUMENT_SUMMARY_INFORMATION_ID,
+ m.put(DOCUMENT_SUMMARY_INFORMATION_ID[0],
PropertyIDMap.getDocumentSummaryInformationProperties());
defaultMap = m;
}
@@ -116,8 +122,7 @@ public class SectionIDMap extends HashMap
public static String getPIDString(final byte[] sectionFormatID,
final long pid)
{
- final PropertyIDMap m =
- (PropertyIDMap) getInstance().get(sectionFormatID);
+ final PropertyIDMap m = getInstance().get(sectionFormatID);
if (m == null)
return UNDEFINED;
else
@@ -178,7 +183,8 @@ public class SectionIDMap extends HashMap
/**
* @deprecated Use {@link #put(byte[], PropertyIDMap)} instead!
- * @link #put(byte[], PropertyIDMap)
+ *
+ * @see #put(byte[], PropertyIDMap)
*
* @param key This parameter remains undocumented since the method is
* deprecated.