## 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()`
`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` `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()

  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

### 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 final 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 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 © 2003 Apache Software Foundation.