org.xbis
Class XBISEventWriter

java.lang.Object
  extended byorg.xbis.XBISWriter
      extended byorg.xbis.XBISEventWriter
All Implemented Interfaces:
XBISConstants

public class XBISEventWriter
extends XBISWriter

Parse event wrapper for XML Binary Information Set output. This provides methods for writing the XBIS representation of the document from a parse event stream.

Version:
0.8
Author:
Dennis M. Sosnoski

Nested Class Summary
 
Nested classes inherited from class org.xbis.XBISWriter
XBISWriter.OutputNamespace
 
Field Summary
static int INITIAL_ELEMENT_COUNT
          Number of elements allowed for in default allocation.
static int INITIAL_NAMESPACE_COUNT
          Number of namespace declarations allowed for in default allocation.
 
Fields inherited from class org.xbis.XBISWriter
DEFAULT_BUFFER_SIZE, MINIMUM_BUFFER_SIZE, SHORT_STRING_LIMIT, STRING_ARRAY_SIZE
 
Fields inherited from interface org.xbis.XBISConstants
ATTRIBUTE_HANDLE_MASK, ATTRIBUTE_NEWREF_FLAG, ATTRIBUTE_NOTEND_FLAG, ATTRIBUTE_VALUEREF_FLAG, DOM_SOURCE_ID, DOM4J_SOURCE_ID, ELEMENT_HANDLE_MASK, ELEMENT_HASATTRIBUTES_FLAG, ELEMENT_HASCHILDREN_FLAG, HEADER_VERSION_ID, JDOM_SOURCE_ID, NAME_LENGTH_MASK, NAME_NS_MASK, NAME_NS_SHIFT, NAMESPACEDECL_HANDLE_MASK, NO_NAMESPACE, NODE_ELEMENT_FLAG, NODE_NAMESPACEDECL_FLAG, NODE_PLAINTEXT_FLAG, NODE_TEXTREF_FLAG, NODE_TYPE_ATTRIBUTEDECL, NODE_TYPE_CDATA, NODE_TYPE_COMMENT, NODE_TYPE_DOCTYPE, NODE_TYPE_DOCUMENT, NODE_TYPE_ELEMENTDECL, NODE_TYPE_END, NODE_TYPE_EXTERNALENTITYDECL, NODE_TYPE_MASK, NODE_TYPE_NOTATION, NODE_TYPE_PI, NODE_TYPE_SKIPPEDENTITY, NODE_TYPE_UNPARSEDENTITY, NS_HANDLE_NONE, NS_HANDLE_XML, NSDEF_PRELENGTH_MASK, NSDEF_URIHANDLE_MASK, NSDEF_URIHANDLE_SHIFT, PLAINTEXT_LENGTH_MASK, SAX2_SOURCE_ID, TEXTREF_HANDLE_MASK, XML_NAMESPACE
 
Constructor Summary
XBISEventWriter()
          Default constructor.
XBISEventWriter(int size)
          Constructor with buffer size specified.
 
Method Summary
 void beginNamespaceMapping(java.lang.String prefix, java.lang.String uri)
          Begin namespace mapping.
protected  void defineAttribute(java.lang.Object obj)
          Add attribute definition.
protected  int getAttributeHandle(java.lang.Object obj)
          Get handle for attribute.
 org.xbis.XBISEventWriter.NameImpl getAttributeImpl(XBISWriter.OutputNamespace ns, java.lang.String name)
          Get name information for an attribute.
 org.xbis.XBISEventWriter.NameImpl getElementImpl(XBISWriter.OutputNamespace ns, java.lang.String name)
          Get name information for an element.
protected  void initState()
          Initialize state information used during the serialization process.
 void reset()
          Reset state information used during the serialization process.
 void setStream(java.io.OutputStream os)
          Set output stream.
 void writeAttributeDecl(java.lang.String ename, java.lang.String aname, java.lang.String type, java.lang.String deftype, java.lang.String dflt)
          Write attribute declaration information to stream.
 void writeCDATA(char[] buff, int offset, int length)
          Write CDATA section to stream.
 void writeCharData(char[] buff, int offset, int length)
          Write character data to stream.
 void writeComment(char[] buff, int offset, int length)
          Write comment to stream.
 void writeDocumentEnd()
          Write document end to stream.
 void writeDocumentStart()
          Write document start to stream.
 void writeDocumentType(java.lang.String name, java.lang.String pubid, java.lang.String sysid)
          Write document type information to stream.
 void writeElementAttribute(java.lang.String prefix, java.lang.String uri, java.lang.String name, java.lang.String value)
          Write attribute to current element start tag.
 void writeElementDecl(java.lang.String name, java.lang.String model)
          Write element declaration information to stream.
 void writeElementEnd()
          Write end of element to stream.
 void writeElementStart(java.lang.String prefix, java.lang.String uri, java.lang.String name, boolean hasa)
          Write element start tag to stream.
 void writeEndAttribute()
          Write end of attributes for current element start tag.
 void writeExternalEntityDecl(java.lang.String name, java.lang.String pubid, java.lang.String sysid)
          Write external entity information to stream.
 void writeNotation(java.lang.String name, java.lang.String pubid, java.lang.String sysid)
          Write notation information to stream.
 void writeProcessingInstruction(java.lang.String name, java.lang.String text)
          Write processing instruction to stream.
 void writeSkippedEntity(java.lang.String name)
          Write skipped entity information to stream.
 void writeUnparsedEntity(java.lang.String name, java.lang.String pubid, java.lang.String sysid, java.lang.String notation)
          Write unparsed entity information to stream.
 
Methods inherited from class org.xbis.XBISWriter
clearMark, clearReset, closeNamespaces, flush, getNamespace, isReset, readMarked, setMark, setSharedAttributes, setSharedContent, setStream, writeAttribute, writeByte, writeChars, writeMarked, writeNameDef, writeNamespaceDecl, writeNamespaceDef, writeQuickValue, writeString, writeStringChars, writeStringData, writeText, writeText, writeValue
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INITIAL_NAMESPACE_COUNT

public static final int INITIAL_NAMESPACE_COUNT
Number of namespace declarations allowed for in default allocation.

See Also:
Constant Field Values

INITIAL_ELEMENT_COUNT

public static final int INITIAL_ELEMENT_COUNT
Number of elements allowed for in default allocation.

See Also:
Constant Field Values
Constructor Detail

XBISEventWriter

public XBISEventWriter(int size)
Constructor with buffer size specified.

Parameters:
size - output buffer size

XBISEventWriter

public XBISEventWriter()
Default constructor.

Method Detail

reset

public void reset()
Reset state information used during the serialization process. This reinitializes the serialization state so that an instance of this class can be reused to serialize multiple independent documents.

Overrides:
reset in class XBISWriter

initState

protected void initState()
Initialize state information used during the serialization process. This implementation of the abstract base class method is specific to the parse event stream interface.

Specified by:
initState in class XBISWriter

getAttributeHandle

protected int getAttributeHandle(java.lang.Object obj)
Get handle for attribute. This implementation of the abstract base class method is specific to the parse event stream interface.

Specified by:
getAttributeHandle in class XBISWriter
Parameters:
obj - attribute object for which handle is to be found (must be a XBISEventWriter.NameImpl instance)
Returns:
handle value if defined (always strictly positive), negative value if not defined

defineAttribute

protected void defineAttribute(java.lang.Object obj)
                        throws java.io.IOException
Add attribute definition. This implementation of the abstract base class method is specific to the parse event stream interface.

Specified by:
defineAttribute in class XBISWriter
Parameters:
obj - attribute object to be defined (must be a XBISEventWriter.NameImpl instance)
Throws:
java.io.IOException - on error writing to stream

writeDocumentStart

public void writeDocumentStart()
                        throws java.io.IOException
Write document start to stream.

Throws:
java.io.IOException - on error writing to stream

writeDocumentEnd

public void writeDocumentEnd()
                      throws java.io.IOException
Write document end to stream.

Throws:
java.io.IOException - on error writing to stream

writeCharData

public void writeCharData(char[] buff,
                          int offset,
                          int length)
                   throws java.io.IOException
Write character data to stream.

Parameters:
buff - array containing characters to be written
offset - starting offset in buffer
length - number of characters in string
Throws:
java.io.IOException - on error writing to stream

writeCDATA

public void writeCDATA(char[] buff,
                       int offset,
                       int length)
                throws java.io.IOException
Write CDATA section to stream.

Parameters:
buff - array containing characters to be written
offset - starting offset in buffer
length - number of characters in string
Throws:
java.io.IOException - on error writing to stream

writeComment

public void writeComment(char[] buff,
                         int offset,
                         int length)
                  throws java.io.IOException
Write comment to stream.

Parameters:
buff - array containing characters to be written
offset - starting offset in buffer
length - number of characters in string
Throws:
java.io.IOException - on error writing to stream

writeProcessingInstruction

public void writeProcessingInstruction(java.lang.String name,
                                       java.lang.String text)
                                throws java.io.IOException
Write processing instruction to stream.

Parameters:
name - target name
text - value text
Throws:
java.io.IOException - on error writing to stream

writeElementStart

public void writeElementStart(java.lang.String prefix,
                              java.lang.String uri,
                              java.lang.String name,
                              boolean hasa)
                       throws java.io.IOException,
                              XBISException
Write element start tag to stream. Writes the element node information to the stream.

Parameters:
prefix - element namespace prefix
uri - element namespace URI
name - local name for element
hasa - has attribute flag
Throws:
java.io.IOException - on error writing to stream
XBISException - on error in event stream

writeElementAttribute

public void writeElementAttribute(java.lang.String prefix,
                                  java.lang.String uri,
                                  java.lang.String name,
                                  java.lang.String value)
                           throws java.io.IOException,
                                  XBISException
Write attribute to current element start tag.

Parameters:
prefix - element namespace prefix
uri - element namespace URI
name - local name for element
value - attribute value
Throws:
java.io.IOException - on error writing to stream
XBISException - on error in event stream

writeEndAttribute

public void writeEndAttribute()
                       throws java.io.IOException
Write end of attributes for current element start tag.

Throws:
java.io.IOException - on error writing to stream

writeElementEnd

public void writeElementEnd()
                     throws java.io.IOException
Write end of element to stream. Just clears the content present flag for the current element if first thing seen in element.

Throws:
java.io.IOException - on error writing to stream

beginNamespaceMapping

public void beginNamespaceMapping(java.lang.String prefix,
                                  java.lang.String uri)
                           throws XBISException
Begin namespace mapping. This accumulates namespace mappings until writeElementStart(java.lang.String, java.lang.String, java.lang.String, boolean) is called.

Parameters:
prefix - element namespace prefix
uri - element namespace URI
Throws:
java.io.IOException - on error writing to stream
XBISException - on namespace error

writeDocumentType

public void writeDocumentType(java.lang.String name,
                              java.lang.String pubid,
                              java.lang.String sysid)
                       throws java.io.IOException
Write document type information to stream.

Parameters:
name - element name
pubid - public id
sysid - system id
Throws:
java.io.IOException - on error writing to stream

writeNotation

public void writeNotation(java.lang.String name,
                          java.lang.String pubid,
                          java.lang.String sysid)
                   throws java.io.IOException
Write notation information to stream.

Parameters:
name - notation name
pubid - public id
sysid - system id
Throws:
java.io.IOException - on error writing to stream

writeUnparsedEntity

public void writeUnparsedEntity(java.lang.String name,
                                java.lang.String pubid,
                                java.lang.String sysid,
                                java.lang.String notation)
                         throws java.io.IOException
Write unparsed entity information to stream.

Parameters:
name - entity name
pubid - public id
sysid - system id
notation - notation name
Throws:
java.io.IOException - on error writing to stream

writeSkippedEntity

public void writeSkippedEntity(java.lang.String name)
                        throws java.io.IOException
Write skipped entity information to stream.

Parameters:
name - entity name
Throws:
java.io.IOException - on error writing to stream

writeElementDecl

public void writeElementDecl(java.lang.String name,
                             java.lang.String model)
                      throws java.io.IOException
Write element declaration information to stream.

Parameters:
name - element name
model - content model description
Throws:
java.io.IOException - on error writing to stream

writeAttributeDecl

public void writeAttributeDecl(java.lang.String ename,
                               java.lang.String aname,
                               java.lang.String type,
                               java.lang.String deftype,
                               java.lang.String dflt)
                        throws java.io.IOException
Write attribute declaration information to stream.

Parameters:
ename - owning element name
aname - attribute name
type - attribute type
deftype - defaulting type
dflt - default value
Throws:
java.io.IOException - on error writing to stream

writeExternalEntityDecl

public void writeExternalEntityDecl(java.lang.String name,
                                    java.lang.String pubid,
                                    java.lang.String sysid)
                             throws java.io.IOException
Write external entity information to stream.

Parameters:
name - entity name
pubid - public id
sysid - system id
Throws:
java.io.IOException - on error writing to stream

setStream

public void setStream(java.io.OutputStream os)
               throws java.io.IOException
Set output stream.

Parameters:
os - serialization output stream
Throws:
java.io.IOException - on error writing to stream

getAttributeImpl

public org.xbis.XBISEventWriter.NameImpl getAttributeImpl(XBISWriter.OutputNamespace ns,
                                                          java.lang.String name)
Get name information for an attribute. Checks if the attribute name and namespace match an existing instance, and if so returns that instance. Otherwise creates a new instance and assigns the next handle value to that instance.

Parameters:
ns - namespace for attribute name
name - local name for attribute
Throws:
java.io.IOException - on error writing to stream

getElementImpl

public org.xbis.XBISEventWriter.NameImpl getElementImpl(XBISWriter.OutputNamespace ns,
                                                        java.lang.String name)
Get name information for an element. Checks if the element name and namespace match an existing instance, and if so returns that instance. Otherwise creates a new instance and assigns the next handle value to that instance.

Parameters:
ns - namespace for element name
name - local name for element
Throws:
java.io.IOException - on error writing to stream


Company Web Site

XML Binary Information Set Home