FileDocCategorySizeDatePackage
PropertyBlock.javaAPI DocApache Poi 3.0.14288Mon Jan 01 12:39:36 GMT 2007org.apache.poi.poifs.storage

PropertyBlock

public class PropertyBlock extends BigBlock
A block of Property instances
author
Marc Johnson (mjohnson at apache dot org)

Fields Summary
private static final int
_properties_per_block
private Property[]
_properties
Constructors Summary
private PropertyBlock(Property[] properties, int offset)
Create a single instance initialized with default values

param
properties the properties to be inserted
param
offset the offset into the properties array


                                

           
    
        _properties = new Property[ _properties_per_block ];
        for (int j = 0; j < _properties_per_block; j++)
        {
            _properties[ j ] = properties[ j + offset ];
        }
    
Methods Summary
public static org.apache.poi.poifs.storage.BlockWritable[]createPropertyBlockArray(java.util.List properties)
Create an array of PropertyBlocks from an array of Property instances, creating empty Property instances to make up any shortfall

param
properties the Property instances to be converted into PropertyBlocks, in a java List
return
the array of newly created PropertyBlock instances

        int        block_count   =
            (properties.size() + _properties_per_block - 1)
            / _properties_per_block;
        Property[] to_be_written =
            new Property[ block_count * _properties_per_block ];

        System.arraycopy(properties.toArray(new Property[ 0 ]), 0,
                         to_be_written, 0, properties.size());
        for (int j = properties.size(); j < to_be_written.length; j++)
        {

            // create an instance of an anonymous inner class that
            // extends Property
            to_be_written[ j ] = new Property()
            {
                protected void preWrite()
                {
                }

                public boolean isDirectory()
                {
                    return false;
                }
            };
        }
        BlockWritable[] rvalue = new BlockWritable[ block_count ];

        for (int j = 0; j < block_count; j++)
        {
            rvalue[ j ] = new PropertyBlock(to_be_written,
                                            j * _properties_per_block);
        }
        return rvalue;
    
voidwriteData(java.io.OutputStream stream)
Write the block's data to an OutputStream

param
stream the OutputStream to which the stored data should be written
exception
IOException on problems writing to the specified stream

        for (int j = 0; j < _properties_per_block; j++)
        {
            _properties[ j ].writeData(stream);
        }