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;
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;
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
*
<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>
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>
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)
*/
</xsl:for-each>;
}
- public short getSid()
- {
- return this.sid;
- }
<xsl:apply-templates select="//field" mode="getset"/>
<xsl:apply-templates select="//field" mode="bits"/>
</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>