Started work

PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@352267 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Andrew C. Oliver 2002-03-23 23:35:21 +00:00
parent 84a76b619f
commit 36d74af3e4
3 changed files with 42 additions and 26 deletions

View File

@ -7,10 +7,18 @@
package org.apache.poi.hdf.model;
import java.io.*;
//import java.io;
import java.util.ArrayList;
import java.io.InputStream;
import java.io.IOException;
import java.util.List;
import java.util.TreeSet;
import org.apache.poi.hdf.model.hdftypes.*;
import org.apache.poi.hdf.model.util.*;
//import org.apache.poi.hdf.model.util.*;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.poifs.filesystem.POIFSDocument;
import org.apache.poi.poifs.filesystem.DocumentEntry;
@ -41,13 +49,14 @@ public class HDFObjectFactory
private FontTable _fonts;
/** text pieces */
BTreeSet _text = new BTreeSet();
//BTreeSet _text = new BTreeSet();
TreeSet _text = new TreeSet();
/** document sections */
BTreeSet _sections = new BTreeSet();
TreeSet _sections = new TreeSet();
/** document paragraphs */
BTreeSet _paragraphs = new BTreeSet();
TreeSet _paragraphs = new TreeSet();
/** document character runs */
BTreeSet _characterRuns = new BTreeSet();
TreeSet _characterRuns = new TreeSet();
/** main document stream buffer*/
byte[] _mainDocument;
@ -78,9 +87,31 @@ public class HDFObjectFactory
initTextPieces();
initFormattingProperties();
istream.close();
}
public static List getTypes(InputStream istream) throws IOException
{
List results = new ArrayList(1);
//do Ole stuff
POIFSFileSystem filesystem = new POIFSFileSystem(istream);
DocumentEntry headerProps =
(DocumentEntry)filesystem.getRoot().getEntry("WordDocument");
byte[] mainDocument = new byte[headerProps.getSize()];
filesystem.createDocumentInputStream("WordDocument").read(mainDocument);
FileInformationBlock fib = new FileInformationBlock(mainDocument);
// initTableStream();
// initTextPieces();
// initFormattingProperties();
results.add(fib);
return results;
}
/**
* Initializes the table stream
*

View File

@ -24,6 +24,7 @@
<echo message=" scratchpad ------- build-run scratchpad code"/>
<echo message=" contrib ---------- build-run contributed code"/>
<echo message=" generate-records - generate excel records"/>
<echo message=" generate-types --- generate word types"/>
<property name="input.selection" value="compile"/>
<user-input name="input.selection">Please select a target </user-input>

View File

@ -79,7 +79,7 @@ import org.apache.poi.hdf.model.hdftypes.HDFType;
public class <xsl:value-of select="@name"/>Type
implements HDFType
{
public final static short sid = <xsl:value-of select="@id"/>;
<xsl:for-each select="//fields/field"> private <xsl:value-of select="recutil:getType(@size,@type,10)"/><xsl:text> </xsl:text><xsl:value-of select="recutil:getFieldName(position(),@name,0)"/>;
<xsl:apply-templates select="./bit|./const"/>
</xsl:for-each>
@ -110,18 +110,6 @@ public class <xsl:value-of select="@name"/>Type
return buffer.toString();
}
public int serialize(int offset, byte[] data)
{
LittleEndian.putShort(data, 0 + offset, sid);
LittleEndian.putShort(data, 2 + offset, (short)(getSize() - 4));
<xsl:variable name="fieldIterator" select="field:new()"/>
<xsl:for-each select="//fields/field"><xsl:text>
</xsl:text><xsl:value-of select="field:serialiseEncoder($fieldIterator,position(),@name,@size,@type)"/>
</xsl:for-each>
return getSize();
}
/**
* Size of record (exluding 4 byte header)
*/
@ -134,10 +122,6 @@ public class <xsl:value-of select="@name"/>Type
</xsl:for-each>;
}
public short getSid()
{
return this.sid;
}
<xsl:apply-templates select="//field" mode="getset"/>
<xsl:apply-templates select="//field" mode="bits"/>
@ -172,7 +156,7 @@ public class <xsl:value-of select="@name"/>Type
</xsl:for-each>
</xsl:template>
<xsl:template match = "bit" > private BitField <xsl:value-of select="recutil:getFieldName(@name,42)"/> = new BitField(<xsl:value-of select="recutil:getMask(@number)"/>);
<xsl:template match = "bit" > private BitField <xsl:value-of select="recutil:getFieldName(@name,42)"/> = new BitField(<xsl:value-of select="@mask"/>);
</xsl:template>
<xsl:template match = "const"> public final static <xsl:value-of select="recutil:getType(../@size,../@type,10)"/><xsl:text> </xsl:text><xsl:value-of select="recutil:getConstName(../@name,@name,30)"/> = <xsl:value-of select="@value"/>;
</xsl:template>