Package org.apache.poi.poifs.property
Class Property
java.lang.Object
org.apache.poi.poifs.property.Property
- All Implemented Interfaces:
POIFSViewable
,Child
- Direct Known Subclasses:
DirectoryProperty
,DocumentProperty
This abstract base class is the ancestor of all classes
implementing POIFS Property behavior.
- Author:
- Marc Johnson (mjohnson at apache dot org)
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final int
protected static final byte
protected static final byte
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected int
Get the child property (its index in the Property Table)protected int
getIndex()
get the index for this PropertygetName()
Get the name of this propertyGet the next Child, if anyGet the previous Child, if anyProvides a short description of the object, to be used when a POIFSViewable object has not provided its contents.int
getSize()
find out the document sizeint
Sets the storage clsid, which is the Class ID of a COM object which reads and writes this streamObject[]
Get an array of objects, some of which may implement POIFSViewableGet an Iterator of objects, some of which may implement POIFSViewableabstract boolean
static boolean
isSmall
(int length) does the length indicate a small document?boolean
Give viewers a hint as to whether to call getViewableArray or getViewableIteratorprotected abstract void
preWrite()
Perform whatever activities need to be performed prior to writingprotected void
setChildProperty
(int child) Set the child property.protected void
setIndex
(int index) Set the index for this Propertyprotected void
Set the name; silently truncates the name if it's too long.void
setNextChild
(Child child) Set the next Childprotected void
setNodeColor
(byte nodeColor) Set the node color.void
setPreviousChild
(Child child) Set the previous Childprotected void
setPropertyType
(byte propertyType) Set the property type.protected void
setSize
(int size) Set the size of the document associated with this Propertyvoid
setStartBlock
(int startBlock) Set the start block for the document referred to by this Property.void
setStorageClsid
(ClassID clsidStorage) Sets the storage class ID for this property stream.boolean
Based on the currently defined size, should this property use small blocks?void
writeData
(OutputStream stream) Write the raw data to an OutputStream.
-
Field Details
-
_NO_INDEX
protected static final int _NO_INDEX- See Also:
-
_NODE_BLACK
protected static final byte _NODE_BLACK- See Also:
-
_NODE_RED
protected static final byte _NODE_RED- See Also:
-
-
Constructor Details
-
Property
protected Property() -
Property
protected Property(int index, byte[] array, int offset) Constructor from byte data- Parameters:
index
- index numberarray
- byte dataoffset
- offset into byte data
-
-
Method Details
-
writeData
Write the raw data to an OutputStream.- Parameters:
stream
- the OutputStream to which the data should be written.- Throws:
IOException
- on problems writing to the specified stream.
-
setStartBlock
public void setStartBlock(int startBlock) Set the start block for the document referred to by this Property.- Parameters:
startBlock
- the start block index
-
getStartBlock
public int getStartBlock()- Returns:
- the start block
-
getSize
public int getSize()find out the document size- Returns:
- size in bytes
-
shouldUseSmallBlocks
public boolean shouldUseSmallBlocks()Based on the currently defined size, should this property use small blocks?- Returns:
- true if the size is less than _big_block_minimum_bytes
-
isSmall
public static boolean isSmall(int length) does the length indicate a small document?- Parameters:
length
- length in bytes- Returns:
- true if the length is less than _big_block_minimum_bytes
-
getName
Get the name of this property- Returns:
- property name as String
-
isDirectory
public abstract boolean isDirectory()- Returns:
- true if a directory type Property
-
getStorageClsid
Sets the storage clsid, which is the Class ID of a COM object which reads and writes this stream- Returns:
- storage Class ID for this property stream
-
setName
Set the name; silently truncates the name if it's too long.- Parameters:
name
- the new name
-
setStorageClsid
Sets the storage class ID for this property stream. This is the Class ID of the COM object which can read and write this property stream- Parameters:
clsidStorage
- Storage Class ID
-
setPropertyType
protected void setPropertyType(byte propertyType) Set the property type. Makes no attempt to validate the value.- Parameters:
propertyType
- the property type (root, file, directory)
-
setNodeColor
protected void setNodeColor(byte nodeColor) Set the node color.- Parameters:
nodeColor
- the node color (red or black)
-
setChildProperty
protected void setChildProperty(int child) Set the child property.- Parameters:
child
- the child property's index in the Property Table
-
getChildIndex
protected int getChildIndex()Get the child property (its index in the Property Table)- Returns:
- child property index
-
setSize
protected void setSize(int size) Set the size of the document associated with this Property- Parameters:
size
- the size of the document, in bytes
-
setIndex
protected void setIndex(int index) Set the index for this Property- Parameters:
index
- this Property's index within its containing Property Table
-
getIndex
protected int getIndex()get the index for this Property- Returns:
- the index of this Property within its Property Table
-
preWrite
protected abstract void preWrite()Perform whatever activities need to be performed prior to writing -
getNextChild
Get the next Child, if any- Specified by:
getNextChild
in interfaceChild
- Returns:
- the next Child; may return null
-
getPreviousChild
Get the previous Child, if any- Specified by:
getPreviousChild
in interfaceChild
- Returns:
- the previous Child; may return null
-
setNextChild
Set the next Child- Specified by:
setNextChild
in interfaceChild
- Parameters:
child
- the new 'next' child; may be null, which has the effect of saying there is no 'next' child
-
setPreviousChild
Set the previous Child- Specified by:
setPreviousChild
in interfaceChild
- Parameters:
child
- the new 'previous' child; may be null, which has the effect of saying there is no 'previous' child
-
getViewableArray
Get an array of objects, some of which may implement POIFSViewable- Specified by:
getViewableArray
in interfacePOIFSViewable
- Returns:
- an array of Object; may not be null, but may be empty
-
getViewableIterator
Get an Iterator of objects, some of which may implement POIFSViewable- Specified by:
getViewableIterator
in interfacePOIFSViewable
- Returns:
- an Iterator; may not be null, but may have an empty back end store
-
preferArray
public boolean preferArray()Give viewers a hint as to whether to call getViewableArray or getViewableIterator- Specified by:
preferArray
in interfacePOIFSViewable
- Returns:
- true if a viewer should call getViewableArray, false if a viewer should call getViewableIterator
-
getShortDescription
Provides a short description of the object, to be used when a POIFSViewable object has not provided its contents.- Specified by:
getShortDescription
in interfacePOIFSViewable
- Returns:
- short description
-