Go to the documentation of this file.
9 package javolution.xml.internal.stream;
11 import java.io.IOException;
12 import java.io.InputStream;
13 import java.io.InputStreamReader;
14 import java.io.Reader;
15 import java.io.UnsupportedEncodingException;
44 "START_ELEMENT",
"END_ELEMENT",
"PROCESSING_INSTRUCTIONS",
45 "CHARACTERS",
"COMMENT",
"SPACE",
"START_DOCUMENT",
"END_DOCUMENT",
46 "ENTITY_REFERENCE",
"ATTRIBUTE",
"DTD",
"CDATA",
"NAMESPACE",
47 "NOTATION_DECLARATION",
"ENTITY_DECLARATION" };
231 private static boolean isUTF8(Object encoding) {
232 return encoding.equals(
"utf-8") || encoding.equals(
"UTF-8")
233 || encoding.equals(
"ASCII") || encoding.equals(
"utf8")
234 || encoding.equals(
"UTF8");
243 public void setInput(InputStream in, String encoding)
250 setInput(
new InputStreamReader(in, encoding));
251 }
catch (UnsupportedEncodingException e) {
268 throw new IllegalStateException(
"Reader not closed or reset");
285 }
catch (IOException e) {
318 throw new IllegalStateException(
319 "Not a start element or an end element");
332 throw new IllegalArgumentException();
344 throw new IllegalStateException(
"Not a start element");
479 }
else if (c ==
'[') {
500 }
else if (c ==
'?') {
507 }
else if (c !=
'!') {
603 }
else if (c ==
'/') {
608 }
else if (c ==
':') {
610 }
else if (c <=
' ') {
630 }
else if (c ==
'/') {
632 }
else if (c >
' ') {
647 }
else if (c ==
'=') {
651 }
else if (c ==
':') {
674 }
else if (c ==
'\"') {
743 }
else if (c ==
':') {
745 }
else if (c <=
' ') {
830 }
catch (IOException e) {
852 "End document has already been reached");
891 "Illegal XML character U+0000",
_location); }
965 return (chars.
length() == 5) && (chars.
charAt(0) ==
'x')
967 && (chars.
charAt(3) ==
'n') && (chars.
charAt(4) ==
's');
1054 char[] tmp =
new char[
_data.length * 2];
1056 "XMLStreamReaderImpl: Data buffer increased to " + tmp.length));
1057 System.arraycopy(
_data, 0, tmp, 0,
_data.length);
1065 "XMLStreamReaderImpl: CharArray stack increased to "
1118 public void require(
int type, CharSequence namespaceURI,
1124 if ((namespaceURI !=
null) && !
getNamespaceURI().equals(namespaceURI))
1127 if ((localName !=
null) && !
getLocalName().equals(localName))
1136 "Parser must be on START_ELEMENT to read next text",
1139 int eventType =
next();
1153 "Unexpected end of document when reading element text content",
1157 "Element text content may not contain START_ELEMENT",
1165 return (text !=
null) ? text :
newSeq(0, 0);
1169 public Object
getProperty(String name)
throws IllegalArgumentException {
1171 return Boolean.TRUE;
1175 throw new IllegalArgumentException(
"Property: " + name
1176 +
" not supported");
1336 int copyLength = Math.min(length, text.
length());
1337 System.arraycopy(text.
array(), sourceStart + text.
offset(), target,
1338 targetStart, copyLength);
1358 return (standalone !=
null) ? standalone.
equals(
"no") :
true;
1384 throw new IllegalStateException(
"Not a start element");
1414 return (c == 0x20) || (c == 0x9) || (c == 0xD) || (c == 0xA);
1418 int eventType =
next();
1433 return new IllegalStateException(msg +
" ("
1441 byte0 = input.read();
1442 }
catch (IOException e) {
1453 byte1 = input.read();
1454 }
catch (IOException e) {
1459 if ((byte0 == 0) && (byte1 ==
'<')) {
1462 }
else if ((byte0 ==
'<') && (byte1 == 0)) {
1465 }
else if ((byte0 == 0xFF) && (byte1 == 0xFE)) {
1467 }
else if ((byte0 == 0xFE) && (byte1 == 0xFF)) {
1480 final int READ_EQUAL = 0;
1481 final int READ_QUOTE = 1;
1482 final int VALUE_SIMPLE_QUOTE = 2;
1483 final int VALUE_DOUBLE_QUOTE = 3;
1490 int state = READ_EQUAL;
1491 int valueOffset = 0;
1492 while (i < maxIndex) {
1502 state = VALUE_DOUBLE_QUOTE;
1504 }
else if (c ==
'\'') {
1505 state = VALUE_SIMPLE_QUOTE;
1509 case VALUE_SIMPLE_QUOTE:
1511 return newSeq(valueOffset, i - valueOffset - 1);
1513 case VALUE_DOUBLE_QUOTE:
1515 return newSeq(valueOffset, i - valueOffset - 1);
CharArray getType(CharSequence qName)
IllegalStateException illegalState(String msg)
void setPrefix(CharArray prefix, CharArray uri)
static boolean isWhiteSpace(char c)
NamespaceContext getNamespaceContext()
void addAttribute(CharArray localName, CharArray prefix, CharArray qName, CharArray value)
static final int STATE_OPEN_TAGxEQUAL_READ
final Runnable _createSeqLogic
static final int STATE_COMMENT
static final int STATE_MARKUP
final CharArray _defaultNsPrefix
static final int STATE_CDATA
static final int END_DOCUMENT
void increaseDataBuffer()
static final int STATE_DTD_INTERNAL
CharArray getAttributeValue(CharSequence uri, CharSequence localName)
static final int STATE_OPEN_TAGxREAD_ELEM_NAME
void setInput(InputStream in)
CharArray getPrefix(int index)
Map< String, String > getEntitiesMapping()
static void info(Object... message)
static final int STATE_CLOSE_TAGxELEM_NAME_READ
CharArray getValue(CharSequence qName)
boolean equals(Object that)
final AttributesImpl _attributes
final NamespacesImpl _namespaces
CharArray getAttributeType(int index)
final UTF8StreamReader _utf8StreamReader
void setEntitiesMapping(Map< String, String > entityToReplacementText)
static final int START_ELEMENT
Object getProperty(String name)
int getTextCharacters(int sourceStart, char[] target, int targetStart, int length)
static final int STATE_OPEN_TAGxREAD_ATTR_NAME
CharArray getQName(int depth)
char[] getTextCharacters()
CharArray getNamespaceURI(CharSequence prefix)
static final int STATE_PI
CharArray getAttributePrefix(int index)
char handleEndOfLine(char c)
boolean _charactersPending
CharArray getElementText()
CharArray getAttributeNamespace(int index)
static boolean isUTF8(Object encoding)
static final int CHARACTERS
static final int STATE_CHARACTERS
void setInput(InputStream in, String encoding)
UTF8StreamReader setInput(InputStream inStream)
static final int END_ELEMENT
static final String[] NAMES_OF_EVENTS
static final int READER_BUFFER_CAPACITY
boolean isAttributeSpecified(int index)
int replaceEntity(char[] buffer, int start, int length)
CharArray getNamespaceURI(CharSequence prefix)
XMLStreamReaderImpl(XMLInputFactoryImpl factory)
void setInput(Reader reader)
static final int STATE_CLOSE_TAGxREAD_ELEM_NAME
static final int STATE_OPEN_TAGxATTR_NAME_READ
CharArray getAttributeLocalName(int index)
static final int STATE_OPEN_TAGxELEM_NAME_READ
final int indexOf(java.lang.CharSequence csq)
CharArray getNamespaceURI()
Attributes getAttributes()
CharArray getLocalName(int index)
final CharArray readPrologAttribute(CharSequence name)
static final CharArray ENCODING
CharArray getNamespacePrefix(int index)
static final CharArray STANDALONE
CharArray getNamespaceURI(int index)
final LocationImpl _location
String detectEncoding(InputStream input)
CharArray setArray(char[] array, int offset, int length)
static final int STATE_OPEN_TAGxREAD_ATTR_VALUE_DOUBLE_QUOTE
final XMLInputFactoryImpl _factory
static final int PROCESSING_INSTRUCTION
void require(int type, CharSequence namespaceURI, CharSequence localName)
static final CharArray VERSION
CharArray newSeq(int offset, int length)
static boolean isXMLNS(CharArray chars)
CharArray getNamespaceURINullAllowed(CharSequence prefix)
CharArray getAttributeValue(int index)
static final int START_DOCUMENT
CharArray getCharacterEncodingScheme()
static final int STATE_OPEN_TAGxREAD_ATTR_VALUE_SIMPLE_QUOTE
void setEntities(Map< String, String > entities)
static final int STATE_OPEN_TAGxEMPTY_TAG
final EntitiesImpl _entities
static final int STATE_DTD