Class MXParser
java.lang.Object
org.codehaus.plexus.metadata.merge.MXParser
- All Implemented Interfaces:
org.codehaus.plexus.util.xml.pull.XmlPullParser
Absolutely minimal implementation of XMLPULL V1 API. Encoding handling done with XmlReader
- Author:
- Aleksander Slominski
- See Also:
-
XmlReader
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected boolean
Implementation notice: the is instance variable that controls if newString() is interning.protected int
protected String[]
protected int[]
protected String[]
protected String[]
protected String[]
protected char[]
protected int
protected int
protected int
protected int
protected int
protected char[]
protected int
protected int
protected String[]
protected int[]
protected String[]
protected char[][]
protected int[]
protected int[]
protected String[]
protected boolean
protected int
protected String[]
protected char[][]
protected int[]
protected String
protected String[]
protected char[][]
protected int
protected static final String
protected static final String
protected String
protected int
protected String
protected static final int
protected static final char
protected static boolean[]
protected static boolean[]
protected int
protected String[]
protected int[]
protected String[]
protected static final char[]
protected static final char[]
protected boolean
protected char[]
protected int
protected int
protected int
protected int
protected int
protected boolean
protected boolean
protected static final String
protected static final String
protected static final String
protected static final String
protected boolean
protected static final int
protected Reader
protected static final String
protected boolean
protected boolean
protected boolean
protected boolean
protected boolean
protected boolean
protected boolean
protected static final char[]
protected String
protected boolean
protected boolean
protected static final char[]
protected static final String
protected String
protected Boolean
protected String
protected static final String
protected static final char[]
Fields inherited from interface org.codehaus.plexus.util.xml.pull.XmlPullParser
CDSECT, COMMENT, DOCDECL, END_DOCUMENT, END_TAG, ENTITY_REF, FEATURE_PROCESS_DOCDECL, FEATURE_PROCESS_NAMESPACES, FEATURE_REPORT_NAMESPACE_ATTRIBUTES, FEATURE_VALIDATION, IGNORABLE_WHITESPACE, NO_NAMESPACE, PROCESSING_INSTRUCTION, START_DOCUMENT, START_TAG, TEXT, TYPES
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
defineEntityReplacementText
(String entityName, String replacementText) protected void
ensureAttributesCapacity
(int size) Make sure that in attributes temporary array is enough space.protected void
Make sure that we have enough space to keep element stack if passed size.protected void
protected void
ensureNamespacesCapacity
(int size) protected void
ensurePC
(int end) protected static final int
fastHash
(char[] ch, int off, int len) simplistic implementation of hash function that has constant time to compute - so it also means diminishing hash quality for long strings but for XML parsing it should be good enough ...protected void
fillBuf()
int
getAttributeName
(int index) getAttributeNamespace
(int index) getAttributePrefix
(int index) getAttributeType
(int index) getAttributeValue
(int index) getAttributeValue
(String namespace, String name) int
int
getDepth()
int
boolean
getFeature
(String name) Unknown properties are always returned as falseint
getName()
getNamespace
(String prefix) int
getNamespaceCount
(int depth) getNamespacePrefix
(int pos) getNamespaceUri
(int pos) Return string describing current position of parsers as text 'STATE [seen %s...] @line:column'.getProperty
(String name) getText()
char[]
getTextCharacters
(int[] holderForStartAndLength) boolean
isAttributeDefault
(int index) boolean
protected boolean
isNameChar
(char ch) protected boolean
isNameStartChar
(char ch) protected boolean
isS
(char ch) boolean
protected void
joinPC()
protected char[]
lookuEntityReplacement
(int entitNameLen) protected char
more()
protected String
newString
(char[] cbuf, int off, int len) protected String
newStringIntern
(char[] cbuf, int off, int len) int
next()
protected int
nextImpl()
int
nextTag()
nextText()
int
protected char
protected void
parseCDSect
(boolean hadCharData) protected void
protected void
int
protected char[]
protected int
protected boolean
parsePI()
protected int
int
protected void
parseXmlDecl
(char ch) protected void
parseXmlDeclWithVersion
(int versionStart, int versionEnd) protected String
printable
(char ch) protected String
void
protected char
requireInput
(char ch, char[] input) protected char
protected void
reset()
protected void
void
setFeature
(String name, boolean state) Method setFeaturevoid
setInput
(InputStream inputStream, String inputEncoding) void
void
setProperty
(String name, Object value) protected char
skipS
(char ch) void
Skip sub tree that is currently porser positioned on.
-
Field Details
-
XML_URI
- See Also:
-
XMLNS_URI
- See Also:
-
FEATURE_XML_ROUNDTRIP
- See Also:
-
FEATURE_NAMES_INTERNED
- See Also:
-
PROPERTY_XMLDECL_VERSION
- See Also:
-
PROPERTY_XMLDECL_STANDALONE
- See Also:
-
PROPERTY_XMLDECL_CONTENT
- See Also:
-
PROPERTY_LOCATION
- See Also:
-
REPORT_NAMESPACE_PREFIXES
- See Also:
-
allStringsInterned
protected boolean allStringsInternedImplementation notice: the is instance variable that controls if newString() is interning.NOTE: newStringIntern always returns interned strings and newString MAY return interned String depending on this variable.
NOTE: by default in this minimal implementation it is false!
-
usePC
protected boolean usePC -
seenStartTag
protected boolean seenStartTag -
seenEndTag
protected boolean seenEndTag -
pastEndTag
protected boolean pastEndTag -
seenAmpersand
protected boolean seenAmpersand -
seenMarkup
protected boolean seenMarkup -
seenDocdecl
protected boolean seenDocdecl -
tokenize
protected boolean tokenize -
text
-
entityRefName
-
xmlDeclVersion
-
xmlDeclStandalone
-
xmlDeclContent
-
processNamespaces
protected boolean processNamespaces -
roundtripSupported
protected boolean roundtripSupported -
location
-
lineNumber
protected int lineNumber -
columnNumber
protected int columnNumber -
seenRoot
protected boolean seenRoot -
reachedEnd
protected boolean reachedEnd -
eventType
protected int eventType -
emptyElementTag
protected boolean emptyElementTag -
depth
protected int depth -
elRawName
protected char[][] elRawName -
elRawNameEnd
protected int[] elRawNameEnd -
elRawNameLine
protected int[] elRawNameLine -
elName
-
elPrefix
-
elUri
-
elNamespaceCount
protected int[] elNamespaceCount -
READ_CHUNK_SIZE
protected static final int READ_CHUNK_SIZE- See Also:
-
reader
-
inputEncoding
-
bufLoadFactor
protected int bufLoadFactor -
buf
protected char[] buf -
bufSoftLimit
protected int bufSoftLimit -
preventBufferCompaction
protected boolean preventBufferCompaction -
bufAbsoluteStart
protected int bufAbsoluteStart -
bufStart
protected int bufStart -
bufEnd
protected int bufEnd -
pos
protected int pos -
posStart
protected int posStart -
posEnd
protected int posEnd -
pc
protected char[] pc -
pcStart
protected int pcStart -
pcEnd
protected int pcEnd -
attributeCount
protected int attributeCount -
attributeName
-
attributeNameHash
protected int[] attributeNameHash -
attributePrefix
-
attributeUri
-
attributeValue
-
namespaceEnd
protected int namespaceEnd -
namespacePrefix
-
namespacePrefixHash
protected int[] namespacePrefixHash -
namespaceUri
-
entityEnd
protected int entityEnd -
entityName
-
entityNameBuf
protected char[][] entityNameBuf -
entityReplacement
-
entityReplacementBuf
protected char[][] entityReplacementBuf -
entityNameHash
protected int[] entityNameHash -
charRefOneCharBuf
protected char[] charRefOneCharBuf -
VERSION
protected static final char[] VERSION -
NCODING
protected static final char[] NCODING -
TANDALONE
protected static final char[] TANDALONE -
YES
protected static final char[] YES -
NO
protected static final char[] NO -
LOOKUP_MAX
protected static final int LOOKUP_MAX- See Also:
-
LOOKUP_MAX_CHAR
protected static final char LOOKUP_MAX_CHAR- See Also:
-
lookupNameStartChar
protected static boolean[] lookupNameStartChar -
lookupNameChar
protected static boolean[] lookupNameChar
-
-
Constructor Details
-
MXParser
public MXParser()
-
-
Method Details
-
resetStringCache
protected void resetStringCache() -
newString
-
newStringIntern
-
ensureElementsCapacity
protected void ensureElementsCapacity()Make sure that we have enough space to keep element stack if passed size. It will always create one additional slot then current depth -
ensureAttributesCapacity
protected void ensureAttributesCapacity(int size) Make sure that in attributes temporary array is enough space.- Parameters:
size
- The size.
-
ensureNamespacesCapacity
protected void ensureNamespacesCapacity(int size) -
fastHash
protected static final int fastHash(char[] ch, int off, int len) simplistic implementation of hash function that has constant time to compute - so it also means diminishing hash quality for long strings but for XML parsing it should be good enough ...- Parameters:
ch
- The characters.off
- The offset.len
- The length.- Returns:
- the hash.
-
ensureEntityCapacity
protected void ensureEntityCapacity() -
reset
protected void reset() -
setFeature
public void setFeature(String name, boolean state) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException Method setFeature- Specified by:
setFeature
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
- Parameters:
name
- a Stringstate
- a boolean- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
- in case of an error.
-
getFeature
Unknown properties are always returned as false- Specified by:
getFeature
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
-
setProperty
public void setProperty(String name, Object value) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException - Specified by:
setProperty
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
-
getProperty
- Specified by:
getProperty
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
-
setInput
- Specified by:
setInput
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
-
setInput
public void setInput(InputStream inputStream, String inputEncoding) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException - Specified by:
setInput
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
-
getInputEncoding
- Specified by:
getInputEncoding
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
-
defineEntityReplacementText
public void defineEntityReplacementText(String entityName, String replacementText) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException - Specified by:
defineEntityReplacementText
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
-
getNamespaceCount
public int getNamespaceCount(int depth) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException - Specified by:
getNamespaceCount
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
-
getNamespacePrefix
public String getNamespacePrefix(int pos) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException - Specified by:
getNamespacePrefix
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
-
getNamespaceUri
public String getNamespaceUri(int pos) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException - Specified by:
getNamespaceUri
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
-
getNamespace
- Specified by:
getNamespace
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
-
getDepth
public int getDepth()- Specified by:
getDepth
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
-
getPositionDescription
Return string describing current position of parsers as text 'STATE [seen %s...] @line:column'.- Specified by:
getPositionDescription
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
-
getLineNumber
public int getLineNumber()- Specified by:
getLineNumber
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
-
getColumnNumber
public int getColumnNumber()- Specified by:
getColumnNumber
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
-
isWhitespace
public boolean isWhitespace() throws org.codehaus.plexus.util.xml.pull.XmlPullParserException- Specified by:
isWhitespace
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
-
getText
- Specified by:
getText
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
-
getTextCharacters
public char[] getTextCharacters(int[] holderForStartAndLength) - Specified by:
getTextCharacters
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
-
getNamespace
- Specified by:
getNamespace
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
-
getName
- Specified by:
getName
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
-
getPrefix
- Specified by:
getPrefix
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
-
isEmptyElementTag
public boolean isEmptyElementTag() throws org.codehaus.plexus.util.xml.pull.XmlPullParserException- Specified by:
isEmptyElementTag
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
-
getAttributeCount
public int getAttributeCount()- Specified by:
getAttributeCount
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
-
getAttributeNamespace
- Specified by:
getAttributeNamespace
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
-
getAttributeName
- Specified by:
getAttributeName
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
-
getAttributePrefix
- Specified by:
getAttributePrefix
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
-
getAttributeType
- Specified by:
getAttributeType
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
-
isAttributeDefault
public boolean isAttributeDefault(int index) - Specified by:
isAttributeDefault
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
-
getAttributeValue
- Specified by:
getAttributeValue
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
-
getAttributeValue
- Specified by:
getAttributeValue
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
-
getEventType
public int getEventType() throws org.codehaus.plexus.util.xml.pull.XmlPullParserException- Specified by:
getEventType
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
-
require
public void require(int type, String namespace, String name) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, IOException - Specified by:
require
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
IOException
-
skipSubTree
public void skipSubTree() throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, IOExceptionSkip sub tree that is currently porser positioned on.NOTE: parser must be on START_TAG and when funtion returns parser will be positioned on corresponding END_TAG
- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
- in case of an error.IOException
- in case of an error.
-
nextText
public String nextText() throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, IOException- Specified by:
nextText
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
IOException
-
nextTag
- Specified by:
nextTag
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
IOException
-
next
- Specified by:
next
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
IOException
-
nextToken
- Specified by:
nextToken
in interfaceorg.codehaus.plexus.util.xml.pull.XmlPullParser
- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
IOException
-
nextImpl
protected int nextImpl() throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, IOException- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
IOException
-
parseProlog
protected int parseProlog() throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, IOException- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
IOException
-
parseEpilog
protected int parseEpilog() throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, IOException- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
IOException
-
parseEndTag
public int parseEndTag() throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, IOException- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
IOException
-
parseStartTag
public int parseStartTag() throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, IOException- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
IOException
-
parseAttribute
protected char parseAttribute() throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, IOException- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
IOException
-
parseEntityRef
protected char[] parseEntityRef() throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, IOException- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
IOException
-
lookuEntityReplacement
protected char[] lookuEntityReplacement(int entitNameLen) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, IOException - Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
IOException
-
parseComment
protected void parseComment() throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, IOException- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
IOException
-
parsePI
protected boolean parsePI() throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, IOException- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
IOException
-
parseXmlDecl
protected void parseXmlDecl(char ch) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, IOException - Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
IOException
-
parseXmlDeclWithVersion
protected void parseXmlDeclWithVersion(int versionStart, int versionEnd) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, IOException - Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
IOException
-
parseDocdecl
protected void parseDocdecl() throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, IOException- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
IOException
-
parseCDSect
protected void parseCDSect(boolean hadCharData) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, IOException - Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
IOException
-
fillBuf
protected void fillBuf() throws IOException, org.codehaus.plexus.util.xml.pull.XmlPullParserException- Throws:
IOException
org.codehaus.plexus.util.xml.pull.XmlPullParserException
-
more
- Throws:
IOException
org.codehaus.plexus.util.xml.pull.XmlPullParserException
-
ensurePC
protected void ensurePC(int end) -
joinPC
protected void joinPC() -
requireInput
protected char requireInput(char ch, char[] input) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, IOException - Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
IOException
-
requireNextS
protected char requireNextS() throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, IOException- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
IOException
-
skipS
protected char skipS(char ch) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, IOException - Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
IOException
-
isNameStartChar
protected boolean isNameStartChar(char ch) -
isNameChar
protected boolean isNameChar(char ch) -
isS
protected boolean isS(char ch) -
printable
-
printable
-