org.apache.poi.poifs.property
Class Property

java.lang.Object
  extended by org.apache.poi.poifs.property.Property
All Implemented Interfaces:
POIFSViewable, Child
Direct Known Subclasses:
DirectoryProperty, DocumentProperty

public abstract class Property
extends java.lang.Object
implements Child, POIFSViewable

This abstract base class is the ancestor of all classes implementing POIFS Property behavior.


Field Summary
protected static int _NO_INDEX
           
protected static byte _NODE_BLACK
           
protected static byte _NODE_RED
           
 
Constructor Summary
protected Property()
           
protected Property(int index, byte[] array, int offset)
          Constructor from byte data
 
Method Summary
protected  int getChildIndex()
          Get the child property (its index in the Property Table)
protected  int getIndex()
          get the index for this Property
 java.lang.String getName()
          Get the name of this property
 Child getNextChild()
          Get the next Child, if any
 Child getPreviousChild()
          Get the previous Child, if any
 java.lang.String getShortDescription()
          Provides a short description of the object, to be used when a POIFSViewable object has not provided its contents.
 int getSize()
          find out the document size
 int getStartBlock()
           
 ClassID getStorageClsid()
          Sets the storage clsid, which is the Class ID of a COM object which reads and writes this stream
 java.lang.Object[] getViewableArray()
          Get an array of objects, some of which may implement POIFSViewable
 java.util.Iterator<java.lang.Object> getViewableIterator()
          Get an Iterator of objects, some of which may implement POIFSViewable
abstract  boolean isDirectory()
           
static boolean isSmall(int length)
          does the length indicate a small document?
 boolean preferArray()
          Give viewers a hint as to whether to call getViewableArray or getViewableIterator
protected abstract  void preWrite()
          Perform whatever activities need to be performed prior to writing
protected  void setChildProperty(int child)
          Set the child property.
protected  void setIndex(int index)
          Set the index for this Property
protected  void setName(java.lang.String name)
          Set the name; silently truncates the name if it's too long.
 void setNextChild(Child child)
          Set the next Child
protected  void setNodeColor(byte nodeColor)
          Set the node color.
 void setPreviousChild(Child child)
          Set the previous Child
protected  void setPropertyType(byte propertyType)
          Set the property type.
protected  void setSize(int size)
          Set the size of the document associated with this Property
 void 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 shouldUseSmallBlocks()
          Based on the currently defined size, should this property use small blocks?
 void writeData(java.io.OutputStream stream)
          Write the raw data to an OutputStream.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_NO_INDEX

protected static final int _NO_INDEX
See Also:
Constant Field Values

_NODE_BLACK

protected static final byte _NODE_BLACK
See Also:
Constant Field Values

_NODE_RED

protected static final byte _NODE_RED
See Also:
Constant Field Values
Constructor Detail

Property

protected Property()

Property

protected Property(int index,
                   byte[] array,
                   int offset)
Constructor from byte data

Parameters:
index - index number
array - byte data
offset - offset into byte data
Method Detail

writeData

public void writeData(java.io.OutputStream stream)
               throws java.io.IOException
Write the raw data to an OutputStream.

Parameters:
stream - the OutputStream to which the data should be written.
Throws:
java.io.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

public java.lang.String 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

public ClassID 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

protected void setName(java.lang.String name)
Set the name; silently truncates the name if it's too long.

Parameters:
name - the new name

setStorageClsid

public void setStorageClsid(ClassID clsidStorage)
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

public Child getNextChild()
Get the next Child, if any

Specified by:
getNextChild in interface Child
Returns:
the next Child; may return null

getPreviousChild

public Child getPreviousChild()
Get the previous Child, if any

Specified by:
getPreviousChild in interface Child
Returns:
the previous Child; may return null

setNextChild

public void setNextChild(Child child)
Set the next Child

Specified by:
setNextChild in interface Child
Parameters:
child - the new 'next' child; may be null, which has the effect of saying there is no 'next' child

setPreviousChild

public void setPreviousChild(Child child)
Set the previous Child

Specified by:
setPreviousChild in interface Child
Parameters:
child - the new 'previous' child; may be null, which has the effect of saying there is no 'previous' child

getViewableArray

public java.lang.Object[] getViewableArray()
Get an array of objects, some of which may implement POIFSViewable

Specified by:
getViewableArray in interface POIFSViewable
Returns:
an array of Object; may not be null, but may be empty

getViewableIterator

public java.util.Iterator<java.lang.Object> getViewableIterator()
Get an Iterator of objects, some of which may implement POIFSViewable

Specified by:
getViewableIterator in interface POIFSViewable
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 interface POIFSViewable
Returns:
true if a viewer should call getViewableArray, false if a viewer should call getViewableIterator

getShortDescription

public java.lang.String getShortDescription()
Provides a short description of the object, to be used when a POIFSViewable object has not provided its contents.

Specified by:
getShortDescription in interface POIFSViewable
Returns:
short description