Package org.apache.poi.hsmf.datatypes
Class PropertiesChunk
- java.lang.Object
-
- org.apache.poi.hsmf.datatypes.Chunk
-
- org.apache.poi.hsmf.datatypes.PropertiesChunk
-
- Direct Known Subclasses:
MessagePropertiesChunk
,StoragePropertiesChunk
public abstract class PropertiesChunk extends Chunk
A Chunk which holds (single) fixed-length properties, and pointer to the variable length ones / multi-valued ones (which get their own chunk).
There are two kinds of PropertiesChunks, which differ only in their headers.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
NAME
static int
PROPERTIES_FLAG_READABLE
static int
PROPERTIES_FLAG_WRITEABLE
static java.lang.String
VARIABLE_LENGTH_PROPERTY_PREFIX
-
Fields inherited from class org.apache.poi.hsmf.datatypes.Chunk
DEFAULT_NAME_PREFIX
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
PropertiesChunk(ChunkGroup parentGroup)
Creates a Properties Chunk.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
getEntryName()
Creates a string to use to identify this chunk in the POI file system object.java.util.Map<MAPIProperty,java.util.List<PropertyValue>>
getProperties()
Returns all the properties in the chunk, along with their values.java.util.Map<MAPIProperty,PropertyValue>
getRawProperties()
Returns all the properties in the chunk, without looking up any chunk-based valuesPropertyValue
getRawValue(MAPIProperty property)
Returns the value / pointer to the value chunk of the property, or null if none existsjava.util.List<PropertyValue>
getValues(MAPIProperty property)
Returns all values for the given property, looking up chunk based ones as required, of null if none existprotected void
matchVariableSizedPropertiesToChunks()
Called once the parent ChunkGroup has been populated, to match up the Chunks in it with our Variable Sized Properties.protected void
readProperties(java.io.InputStream value)
void
setProperty(PropertyValue value)
Defines a property.protected void
writeNodeData(DirectoryEntry directory, java.util.List<PropertyValue> values)
Write the nodes for variable-length data.protected java.util.List<PropertyValue>
writeProperties(java.io.OutputStream out)
Writes the header of the properties.void
writeProperties(DirectoryEntry directory)
Writes this chunk in the specifiedDirectoryEntry
.-
Methods inherited from class org.apache.poi.hsmf.datatypes.Chunk
getChunkId, getType, readValue, writeValue
-
-
-
-
Field Detail
-
NAME
public static final java.lang.String NAME
- See Also:
- Constant Field Values
-
VARIABLE_LENGTH_PROPERTY_PREFIX
public static final java.lang.String VARIABLE_LENGTH_PROPERTY_PREFIX
- See Also:
- Constant Field Values
-
PROPERTIES_FLAG_READABLE
public static final int PROPERTIES_FLAG_READABLE
- See Also:
- Constant Field Values
-
PROPERTIES_FLAG_WRITEABLE
public static final int PROPERTIES_FLAG_WRITEABLE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
PropertiesChunk
protected PropertiesChunk(ChunkGroup parentGroup)
Creates a Properties Chunk.
-
-
Method Detail
-
getEntryName
public java.lang.String getEntryName()
Description copied from class:Chunk
Creates a string to use to identify this chunk in the POI file system object.- Overrides:
getEntryName
in classChunk
-
getRawProperties
public java.util.Map<MAPIProperty,PropertyValue> getRawProperties()
Returns all the properties in the chunk, without looking up any chunk-based values
-
getProperties
public java.util.Map<MAPIProperty,java.util.List<PropertyValue>> getProperties()
Returns all the properties in the chunk, along with their values.
Any chunk-based values will be looked up and returned as such
-
setProperty
public void setProperty(PropertyValue value)
Defines a property. Multi-valued properties are not yet supported.
-
getValues
public java.util.List<PropertyValue> getValues(MAPIProperty property)
Returns all values for the given property, looking up chunk based ones as required, of null if none exist
-
getRawValue
public PropertyValue getRawValue(MAPIProperty property)
Returns the value / pointer to the value chunk of the property, or null if none exists
-
matchVariableSizedPropertiesToChunks
protected void matchVariableSizedPropertiesToChunks()
Called once the parent ChunkGroup has been populated, to match up the Chunks in it with our Variable Sized Properties.
-
readProperties
protected void readProperties(java.io.InputStream value) throws java.io.IOException
- Throws:
java.io.IOException
-
writeProperties
public void writeProperties(DirectoryEntry directory) throws java.io.IOException
Writes this chunk in the specifiedDirectoryEntry
.- Parameters:
directory
- The directory.- Throws:
java.io.IOException
- If an I/O error occurs.
-
writeNodeData
protected void writeNodeData(DirectoryEntry directory, java.util.List<PropertyValue> values) throws java.io.IOException
Write the nodes for variable-length data. Those properties are returned bywriteProperties(java.io.OutputStream)
.- Parameters:
directory
- The directory.values
- The values.- Throws:
java.io.IOException
- If an I/O error occurs.
-
writeProperties
protected java.util.List<PropertyValue> writeProperties(java.io.OutputStream out) throws java.io.IOException
Writes the header of the properties.- Parameters:
out
- TheOutputStream
.- Returns:
- The variable-length properties that need to be written in another node.
- Throws:
java.io.IOException
- If an I/O error occurs.
-
-