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; 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.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.POIFSFileSystem;
import org.apache.poi.poifs.filesystem.POIFSDocument; import org.apache.poi.poifs.filesystem.POIFSDocument;
import org.apache.poi.poifs.filesystem.DocumentEntry; import org.apache.poi.poifs.filesystem.DocumentEntry;
@ -41,13 +49,14 @@ public class HDFObjectFactory
private FontTable _fonts; private FontTable _fonts;
/** text pieces */ /** text pieces */
BTreeSet _text = new BTreeSet(); //BTreeSet _text = new BTreeSet();
TreeSet _text = new TreeSet();
/** document sections */ /** document sections */
BTreeSet _sections = new BTreeSet(); TreeSet _sections = new TreeSet();
/** document paragraphs */ /** document paragraphs */
BTreeSet _paragraphs = new BTreeSet(); TreeSet _paragraphs = new TreeSet();
/** document character runs */ /** document character runs */
BTreeSet _characterRuns = new BTreeSet(); TreeSet _characterRuns = new TreeSet();
/** main document stream buffer*/ /** main document stream buffer*/
byte[] _mainDocument; byte[] _mainDocument;
@ -78,9 +87,31 @@ public class HDFObjectFactory
initTextPieces(); initTextPieces();
initFormattingProperties(); 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 * Initializes the table stream
* *

View File

@ -24,6 +24,7 @@
<echo message=" scratchpad ------- build-run scratchpad code"/> <echo message=" scratchpad ------- build-run scratchpad code"/>
<echo message=" contrib ---------- build-run contributed code"/> <echo message=" contrib ---------- build-run contributed code"/>
<echo message=" generate-records - generate excel records"/> <echo message=" generate-records - generate excel records"/>
<echo message=" generate-types --- generate word types"/>
<property name="input.selection" value="compile"/> <property name="input.selection" value="compile"/>
<user-input name="input.selection">Please select a target </user-input> <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 public class <xsl:value-of select="@name"/>Type
implements HDFType 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: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:apply-templates select="./bit|./const"/>
</xsl:for-each> </xsl:for-each>
@ -110,18 +110,6 @@ public class <xsl:value-of select="@name"/>Type
return buffer.toString(); 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) * Size of record (exluding 4 byte header)
*/ */
@ -134,10 +122,6 @@ public class <xsl:value-of select="@name"/>Type
</xsl:for-each>; </xsl:for-each>;
} }
public short getSid()
{
return this.sid;
}
<xsl:apply-templates select="//field" mode="getset"/> <xsl:apply-templates select="//field" mode="getset"/>
<xsl:apply-templates select="//field" mode="bits"/> <xsl:apply-templates select="//field" mode="bits"/>
@ -172,7 +156,7 @@ public class <xsl:value-of select="@name"/>Type
</xsl:for-each> </xsl:for-each>
</xsl:template> </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>
<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 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> </xsl:template>