org.apache.poi.poifs.property
Class Property

java.lang.Object
  |
  +--org.apache.poi.poifs.property.Property
All Implemented Interfaces:
Child, POIFSViewable
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.

Author:
Marc Johnson (mjohnson at apache dot org)

Field Summary
protected static int _NO_INDEX
           
protected static byte _NODE_BLACK
           
protected static byte _NODE_RED
           
 
Constructor Summary
protected Property()
          Default constructor
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()
           
 java.lang.Object[] getViewableArray()
          Get an array of objects, some of which may implement POIFSViewable
 java.util.Iterator 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.
 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

_NODE_BLACK

protected static final byte _NODE_BLACK

_NODE_RED

protected static final byte _NODE_RED
Constructor Detail

Property

protected Property()
Default constructor

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

setName

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

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


Copyright © 2002 Apache jakarta-poi project. All Rights Reserved.