Package com.sforce.ws.parser
Class MXSerializer
- java.lang.Object
-
- com.sforce.ws.parser.MXSerializer
-
public class MXSerializer extends java.lang.ObjectImplementation of XmlSerializer interface from XmlPull V1 API. This implementation is optimzied for performance and low memory footprint.Implemented features:
- FEATURE_NAMES_INTERNED - when enabled all returned names (namespaces, prefixes) will be interned and it is required that all names passed as arguments MUST be interned
- FEATURE_SERIALIZER_ATTVALUE_USE_APOSTROPHE
Implemented properties:
- PROPERTY_SERIALIZER_INDENTATION
- PROPERTY_SERIALIZER_LINE_SEPARATOR
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanattributeUseApostropheprotected intautoDeclaredPrefixesprotected char[]bufprotected intdepthprotected booleandoIndentprotected java.lang.String[]elNameprotected java.lang.String[]elNamespaceprotected int[]elNamespaceCountprotected java.lang.StringFEATURE_NAMES_INTERNEDprotected java.lang.StringFEATURE_SERIALIZER_ATTVALUE_USE_APOSTROPHEprotected booleanfinishedprotected char[]indentationBufprotected intindentationJumpprotected java.lang.StringindentationStringprotected java.lang.StringlineSeparatorprotected java.lang.Stringlocationprotected intmaxIndentLevelprotected booleannamesInternedprotected intnamespaceEndprotected java.lang.String[]namespacePrefixprotected java.lang.String[]namespaceUriprotected intoffsetNewLineprotected java.io.Writeroutprotected booleanpastRootprotected static java.lang.String[]precomputedPrefixesprotected static java.lang.StringPROPERTY_LOCATIONprotected java.lang.StringPROPERTY_SERIALIZER_INDENTATIONprotected java.lang.StringPROPERTY_SERIALIZER_LINE_SEPARATORprotected booleanseenBracketprotected booleanseenBracketBracketprotected booleanseenTagprotected booleansetPrefixCalledprotected booleanstartTagIncompleteprotected booleanwriteIndentationprotected booleanwriteLineSepartorprotected static java.lang.StringXML_URIprotected static java.lang.StringXMLNS_URI
-
Constructor Summary
Constructors Constructor Description MXSerializer()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description MXSerializerattribute(java.lang.String namespace, java.lang.String name, java.lang.String value)voidcdsect(java.lang.String text)protected voidcloseStartTag()voidcomment(java.lang.String text)voiddocdecl(java.lang.String text)voidendDocument()MXSerializerendTag(java.lang.String namespace, java.lang.String name)protected voidensureElementsCapacity()protected voidensureNamespacesCapacity()voidentityRef(java.lang.String text)voidflush()intgetDepth()booleangetFeature(java.lang.String name)java.lang.StringgetName()java.lang.StringgetNamespace()java.lang.StringgetPrefix(java.lang.String namespace, boolean generatePrefix)java.lang.ObjectgetProperty(java.lang.String name)java.io.WritergetWriter()voidignorableWhitespace(java.lang.String text)protected java.lang.StringlookupOrDeclarePrefix(java.lang.String namespace)protected static java.lang.Stringprintable(char ch)protected static java.lang.Stringprintable(java.lang.String s)simple utility method -- good for debuggingvoidprocessingInstruction(java.lang.String text)protected voidrebuildIndentationBuf()For maximum efficiency when writing indents the required output is pre-computed This is internal function that recomputes buffer after user requested chnages.protected voidreset()voidsetFeature(java.lang.String name, boolean state)voidsetOutput(java.io.OutputStream os, java.lang.String encoding)voidsetOutput(java.io.Writer writer)voidsetPrefix(java.lang.String prefix, java.lang.String namespace)voidsetProperty(java.lang.String name, java.lang.Object value)voidstartDocument(java.lang.String encoding, java.lang.Boolean standalone)MXSerializerstartTag(java.lang.String namespace, java.lang.String name)MXSerializertext(char[] buf, int start, int len)MXSerializertext(java.lang.String text)protected voidwriteAttributeValue(java.lang.String value, java.io.Writer out)protected voidwriteElementContent(char[] buf, int off, int len, java.io.Writer out)protected voidwriteElementContent(java.lang.String text, java.io.Writer out)protected voidwriteIndent()
-
-
-
Field Detail
-
XML_URI
protected static final java.lang.String XML_URI
- See Also:
- Constant Field Values
-
XMLNS_URI
protected static final java.lang.String XMLNS_URI
- See Also:
- Constant Field Values
-
FEATURE_SERIALIZER_ATTVALUE_USE_APOSTROPHE
protected final java.lang.String FEATURE_SERIALIZER_ATTVALUE_USE_APOSTROPHE
- See Also:
- Constant Field Values
-
FEATURE_NAMES_INTERNED
protected final java.lang.String FEATURE_NAMES_INTERNED
- See Also:
- Constant Field Values
-
PROPERTY_SERIALIZER_INDENTATION
protected final java.lang.String PROPERTY_SERIALIZER_INDENTATION
- See Also:
- Constant Field Values
-
PROPERTY_SERIALIZER_LINE_SEPARATOR
protected final java.lang.String PROPERTY_SERIALIZER_LINE_SEPARATOR
- See Also:
- Constant Field Values
-
PROPERTY_LOCATION
protected static final java.lang.String PROPERTY_LOCATION
- See Also:
- Constant Field Values
-
namesInterned
protected boolean namesInterned
-
attributeUseApostrophe
protected boolean attributeUseApostrophe
-
indentationString
protected java.lang.String indentationString
-
lineSeparator
protected java.lang.String lineSeparator
-
location
protected java.lang.String location
-
out
protected java.io.Writer out
-
autoDeclaredPrefixes
protected int autoDeclaredPrefixes
-
depth
protected int depth
-
elNamespace
protected java.lang.String[] elNamespace
-
elName
protected java.lang.String[] elName
-
elNamespaceCount
protected int[] elNamespaceCount
-
namespaceEnd
protected int namespaceEnd
-
namespacePrefix
protected java.lang.String[] namespacePrefix
-
namespaceUri
protected java.lang.String[] namespaceUri
-
finished
protected boolean finished
-
pastRoot
protected boolean pastRoot
-
setPrefixCalled
protected boolean setPrefixCalled
-
startTagIncomplete
protected boolean startTagIncomplete
-
doIndent
protected boolean doIndent
-
seenTag
protected boolean seenTag
-
seenBracket
protected boolean seenBracket
-
seenBracketBracket
protected boolean seenBracketBracket
-
buf
protected char[] buf
-
precomputedPrefixes
protected static final java.lang.String[] precomputedPrefixes
-
offsetNewLine
protected int offsetNewLine
-
indentationJump
protected int indentationJump
-
indentationBuf
protected char[] indentationBuf
-
maxIndentLevel
protected int maxIndentLevel
-
writeLineSepartor
protected boolean writeLineSepartor
-
writeIndentation
protected boolean writeIndentation
-
-
Method Detail
-
reset
protected void reset()
-
ensureElementsCapacity
protected void ensureElementsCapacity()
-
ensureNamespacesCapacity
protected void ensureNamespacesCapacity()
-
setFeature
public void setFeature(java.lang.String name, boolean state) throws java.lang.IllegalArgumentException, java.lang.IllegalStateException- Throws:
java.lang.IllegalArgumentExceptionjava.lang.IllegalStateException
-
getFeature
public boolean getFeature(java.lang.String name) throws java.lang.IllegalArgumentException- Throws:
java.lang.IllegalArgumentException
-
rebuildIndentationBuf
protected void rebuildIndentationBuf()
For maximum efficiency when writing indents the required output is pre-computed This is internal function that recomputes buffer after user requested chnages.
-
writeIndent
protected void writeIndent() throws java.io.IOException- Throws:
java.io.IOException
-
setProperty
public void setProperty(java.lang.String name, java.lang.Object value) throws java.lang.IllegalArgumentException, java.lang.IllegalStateException- Throws:
java.lang.IllegalArgumentExceptionjava.lang.IllegalStateException
-
getProperty
public java.lang.Object getProperty(java.lang.String name) throws java.lang.IllegalArgumentException- Throws:
java.lang.IllegalArgumentException
-
getWriter
public java.io.Writer getWriter()
-
setOutput
public void setOutput(java.io.Writer writer)
-
setOutput
public void setOutput(java.io.OutputStream os, java.lang.String encoding) throws java.io.IOException- Throws:
java.io.IOException
-
startDocument
public void startDocument(java.lang.String encoding, java.lang.Boolean standalone) throws java.io.IOException- Throws:
java.io.IOException
-
endDocument
public void endDocument() throws java.io.IOException- Throws:
java.io.IOException
-
setPrefix
public void setPrefix(java.lang.String prefix, java.lang.String namespace) throws java.io.IOException- Throws:
java.io.IOException
-
lookupOrDeclarePrefix
protected java.lang.String lookupOrDeclarePrefix(java.lang.String namespace)
-
getPrefix
public java.lang.String getPrefix(java.lang.String namespace, boolean generatePrefix)
-
getDepth
public int getDepth()
-
getNamespace
public java.lang.String getNamespace()
-
getName
public java.lang.String getName()
-
startTag
public MXSerializer startTag(java.lang.String namespace, java.lang.String name) throws java.io.IOException
- Throws:
java.io.IOException
-
attribute
public MXSerializer attribute(java.lang.String namespace, java.lang.String name, java.lang.String value) throws java.io.IOException
- Throws:
java.io.IOException
-
closeStartTag
protected void closeStartTag() throws java.io.IOException- Throws:
java.io.IOException
-
endTag
public MXSerializer endTag(java.lang.String namespace, java.lang.String name) throws java.io.IOException
- Throws:
java.io.IOException
-
text
public MXSerializer text(java.lang.String text) throws java.io.IOException
- Throws:
java.io.IOException
-
text
public MXSerializer text(char[] buf, int start, int len) throws java.io.IOException
- Throws:
java.io.IOException
-
cdsect
public void cdsect(java.lang.String text) throws java.io.IOException- Throws:
java.io.IOException
-
entityRef
public void entityRef(java.lang.String text) throws java.io.IOException- Throws:
java.io.IOException
-
processingInstruction
public void processingInstruction(java.lang.String text) throws java.io.IOException- Throws:
java.io.IOException
-
comment
public void comment(java.lang.String text) throws java.io.IOException- Throws:
java.io.IOException
-
docdecl
public void docdecl(java.lang.String text) throws java.io.IOException- Throws:
java.io.IOException
-
ignorableWhitespace
public void ignorableWhitespace(java.lang.String text) throws java.io.IOException- Throws:
java.io.IOException
-
flush
public void flush() throws java.io.IOException- Throws:
java.io.IOException
-
writeAttributeValue
protected void writeAttributeValue(java.lang.String value, java.io.Writer out) throws java.io.IOException- Throws:
java.io.IOException
-
writeElementContent
protected void writeElementContent(java.lang.String text, java.io.Writer out) throws java.io.IOException- Throws:
java.io.IOException
-
writeElementContent
protected void writeElementContent(char[] buf, int off, int len, java.io.Writer out) throws java.io.IOException- Throws:
java.io.IOException
-
printable
protected static java.lang.String printable(java.lang.String s)
simple utility method -- good for debugging
-
printable
protected static java.lang.String printable(char ch)
-
-