![]() |
![]() |
selenium-server-standalone-2.42.2} protected final boolean isDescendant(int identity) { return (_parent2(identity) >= _startNode) || (_startNode == identity); } public int next() { int startNode = _startNode; if (startNode == -1) { return -1; } if ((_includeSelf) && (_currentNode + 1 == startNode)) { return returnNode(makeNodeHandle(++_currentNode)); } int node = _currentNode; int type; if (startNode == 0) { int eType; do { node++; eType = _exptype2(node); if (-1 == eType) { _currentNode = -1; return -1; } } while ((eType == 3) || ((type = m_extendedTypes[eType].getNodeType()) == 2) || (type == 13)); } else { do { node++; type = _type2(node); if ((-1 == type) || (!isDescendant(node))) { _currentNode = -1; return -1; } } while ((2 == type) || (3 == type) || (13 == type)); } _currentNode = node; return returnNode(makeNodeHandle(node)); } public DTMAxisIterator reset() { boolean temp = _isRestartable; _isRestartable = true; setStartNode(makeNodeHandle(_startNode)); _isRestartable = temp; return this; } } public final class TypedDescendantIterator extends SAX2DTM2.DescendantIterator { private final int _nodeType; public TypedDescendantIterator(int nodeType) { super(); _nodeType = nodeType; } public int next() { int startNode = _startNode; if (_startNode == -1) { return -1; } int node = _currentNode; int nodeType = _nodeType; int expType; if (nodeType != 1) { do { node++; expType = _exptype2(node); if ((-1 == expType) || ((_parent2(node) < startNode) && (startNode != node))) { _currentNode = -1; return -1; } } while (expType != nodeType); } else if (startNode == 0) { do { node++; expType = _exptype2(node); if (-1 == expType) { _currentNode = -1; return -1; } } while ((expType < 14) || (m_extendedTypes[expType].getNodeType() != 1)); } else { do { node++; expType = _exptype2(node); if ((-1 == expType) || ((_parent2(node) < startNode) && (startNode != node))) { _currentNode = -1; return -1; } } while ((expType < 14) || (m_extendedTypes[expType].getNodeType() != 1)); } _currentNode = node; return returnNode(makeNodeHandle(node)); } } public final class TypedSingletonIterator extends DTMDefaultBaseIterators.SingletonIterator { private final int _nodeType; public TypedSingletonIterator(int nodeType) { super(); _nodeType = nodeType; } public int next() { int result = _currentNode; if (result == -1) { return -1; } _currentNode = -1; if (_nodeType >= 14) { if (_exptype2(makeNodeIdentity(result)) == _nodeType) { return returnNode(result); } } else if (_type2(makeNodeIdentity(result)) == _nodeType) { return returnNode(result); } return -1; } } private int m_valueIndex = 0; private int m_maxNodeIndex; protected int m_SHIFT; protected int m_MASK; protected int m_blocksize; protected static final int TEXT_LENGTH_BITS = 10; protected static final int TEXT_OFFSET_BITS = 21; protected static final int TEXT_LENGTH_MAX = 1023; protected static final int TEXT_OFFSET_MAX = 2097151; protected boolean m_buildIdIndex = true; private static final String EMPTY_STR = ""; private static final XMLString EMPTY_XML_STR = new XMLStringDefault(""); public SAX2DTM2(DTMManager mgr, Source source, int dtmIdentity, DTMWSFilter whiteSpaceFilter, XMLStringFactory xstringfactory, boolean doIndexing) { this(mgr, source, dtmIdentity, whiteSpaceFilter, xstringfactory, doIndexing, 512, true, true, false); } public SAX2DTM2(DTMManager mgr, Source source, int dtmIdentity, DTMWSFilter whiteSpaceFilter, XMLStringFactory xstringfactory, boolean doIndexing, int blocksize, boolean usePrevsib, boolean buildIdIndex, boolean newNameTable) { super(mgr, source, dtmIdentity, whiteSpaceFilter, xstringfactory, doIndexing, blocksize, usePrevsib, newNameTable); for (int shift = 0; blocksize >>>= 1 != 0; shift++) {} m_blocksize = (1 << shift); m_SHIFT = shift; m_MASK = (m_blocksize - 1); m_buildIdIndex = buildIdIndex; m_values = new Vector(32, 512); m_maxNodeIndex = 65536; m_exptype_map0 = m_exptype.getMap0(); m_nextsib_map0 = m_nextsib.getMap0(); m_firstch_map0 = m_firstch.getMap0(); m_parent_map0 = m_parent.getMap0(); } public final int _exptype(int identity) { return m_exptype.elementAt(identity); } public final int _exptype2(int identity) { if (identity < m_blocksize) { return m_exptype_map0[identity]; } return m_exptype_map[(identity >>> m_SHIFT)][(identity & m_MASK)]; } public final int _nextsib2(int identity) { if (identity < m_blocksize) { return m_nextsib_map0[identity]; } return m_nextsib_map[(identity >>> m_SHIFT)][(identity & m_MASK)]; } public final int _firstch2(int identity) { if (identity < m_blocksize) { return m_firstch_map0[identity]; } return m_firstch_map[(identity >>> m_SHIFT)][(identity & m_MASK)]; } public final int _parent2(int identity) { if (identity < m_blocksize) { return m_parent_map0[identity]; } return m_parent_map[(identity >>> m_SHIFT)][(identity & m_MASK)]; } public final int _type2(int identity) { int eType; if (identity < m_blocksize) { eType = m_exptype_map0[identity]; } else { eType = m_exptype_map[(identity >>> m_SHIFT)][(identity & m_MASK)]; } if (-1 != eType) { return m_extendedTypes[eType].getNodeType(); } return -1; } public final int getExpandedTypeID2(int nodeHandle) { int nodeID = makeNodeIdentity(nodeHandle); if (nodeID != -1) { if (nodeID < m_blocksize) { return m_exptype_map0[nodeID]; } return m_exptype_map[(nodeID >>> m_SHIFT)][(nodeID & m_MASK)]; } return -1; } public final int _exptype2Type(int exptype) { if (-1 != exptype) { return m_extendedTypes[exptype].getNodeType(); } return -1; } public int getIdForNamespace(String uri) { int index = m_values.indexOf(uri); if (index < 0) { m_values.addElement(uri); return m_valueIndex++; } return index; } public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { charactersFlush(); int exName = m_expandedNameTable.getExpandedTypeID(uri, localName, 1); int prefixIndex = qName.length() != localName.length() ? m_valuesOrPrefixes.stringToIndex(qName) : 0; int elemNode = addNode(1, exName, m_parents.peek(), m_previous, prefixIndex, true); if (m_indexing) { indexNode(exName, elemNode); } m_parents.push(elemNode); int startDecls = m_contextIndexes.peek(); int nDecls = m_prefixMappings.size(); String prefix; if (!m_pastFirstElement) { prefix = "xml"; String declURL = "http://www.w3.org/XML/1998/namespace"; exName = m_expandedNameTable.getExpandedTypeID(null, prefix, 13); m_values.addElement(declURL); int val = m_valueIndex++; addNode(13, exName, elemNode, -1, val, false); m_pastFirstElement = true; } for (int i = startDecls; i < nDecls; i += 2) { prefix = (String)m_prefixMappings.elementAt(i); if (prefix != null) { String declURL = (String)m_prefixMappings.elementAt(i + 1); exName = m_expandedNameTable.getExpandedTypeID(null, prefix, 13); m_values.addElement(declURL); int val = m_valueIndex++; addNode(13, exName, elemNode, -1, val, false); } } int n = attributes.getLength(); for (int i = 0; i < n; i++) { String attrUri = attributes.getURI(i); String attrQName = attributes.getQName(i); String valString = attributes.getValue(i); String attrLocalName = attributes.getLocalName(i); int nodeType; if ((null != attrQName) && ((attrQName.equals("xmlns")) || (attrQName.startsWith("xmlns:")))) { prefix = getPrefix(attrQName, attrUri); if (declAlreadyDeclared(prefix)) { continue; } nodeType = 13; } else { nodeType = 2; if ((m_buildIdIndex) && (attributes.getType(i).equalsIgnoreCase("ID"))) { setIDAttribute(valString, elemNode); } } if (null == valString) { valString = ""; } m_values.addElement(valString); int val = m_valueIndex++; if (attrLocalName.length() != attrQName.length()) { prefixIndex = m_valuesOrPrefixes.stringToIndex(attrQName); int dataIndex = m_data.size(); m_data.addElement(prefixIndex); m_data.addElement(val); val = -dataIndex; } exName = m_expandedNameTable.getExpandedTypeID(attrUri, attrLocalName, nodeType); addNode(nodeType, exName, elemNode, -1, val, false); } if (null != m_wsfilter) { short wsv = m_wsfilter.getShouldStripSpace(makeNodeHandle(elemNode), this); boolean shouldStrip = 2 == wsv ? true : 3 == wsv ? getShouldStripWhitespace() : false; pushShouldStripWhitespace(shouldStrip); } m_previous = -1; m_contextIndexes.push(m_prefixMappings.size()); } public void endElement(String uri, String localName, String qName) throws SAXException { charactersFlush(); m_contextIndexes.quickPop(1); int topContextIndex = m_contextIndexes.peek(); if (topContextIndex != m_prefixMappings.size()) { m_prefixMappings.setSize(topContextIndex); } m_previous = m_parents.pop(); popShouldStripWhitespace(); } public void comment(char[] ch, int start, int length) throws SAXException { if (m_insideDTD) { return; } charactersFlush(); m_values.addElement(new String(ch, start, length)); int dataIndex = m_valueIndex++; m_previous = addNode(8, 8, m_parents.peek(), m_previous, dataIndex, false); } public void startDocument() throws SAXException { int doc = addNode(9, 9, -1, -1, 0, true); m_parents.push(doc); m_previous = -1; m_contextIndexes.push(m_prefixMappings.size()); } public void endDocument() throws SAXException { super.endDocument(); m_exptype.addElement(-1); m_parent.addElement(-1); m_nextsib.addElement(-1); m_firstch.addElement(-1); m_extendedTypes = m_expandedNameTable.getExtendedTypes(); m_exptype_map = m_exptype.getMap(); m_nextsib_map = m_nextsib.getMap(); m_firstch_map = m_firstch.getMap(); m_parent_map = m_parent.getMap(); } protected final int addNode(int type, int expandedTypeID, int parentIndex, int previousSibling, int dataOrPrefix, boolean canHaveFirstChild) { int nodeIndex = m_size++; if (nodeIndex == m_maxNodeIndex) { addNewDTMID(nodeIndex); m_maxNodeIndex += 65536; } m_firstch.addElement(-1); m_nextsib.addElement(-1); m_parent.addElement(parentIndex); m_exptype.addElement(expandedTypeID); m_dataOrQName.addElement(dataOrPrefix); if (m_prevsib != null) { m_prevsib.addElement(previousSibling); } if ((m_locator != null) && (m_useSourceLocationProperty)) { setSourceLocation(); } switch (type) { case 13: declareNamespaceInContext(parentIndex, nodeIndex); break; case 2: break; default: if (-1 != previousSibling) { m_nextsib.setElementAt(nodeIndex, previousSibling); } else if (-1 != parentIndex) { m_firstch.setElementAt(nodeIndex, parentIndex); } break; } return nodeIndex; } protected final void charactersFlush() { if (m_textPendingStart >= 0) { int length = m_chars.size() - m_textPendingStart; boolean doStrip = false; if (getShouldStripWhitespace()) { doStrip = m_chars.isWhitespace(m_textPendingStart, length); } if (doStrip) { m_chars.setLength(m_textPendingStart); } else if (length > 0) { if ((length <= 1023) && (m_textPendingStart <= 2097151)) { m_previous = addNode(m_coalescedTextType, 3, m_parents.peek(), m_previous, length + (m_textPendingStart << 10), false); } else { int dataIndex = m_data.size(); m_previous = addNode(m_coalescedTextType, 3, m_parents.peek(), m_previous, -dataIndex, false); m_data.addElement(m_textPendingStart); m_data.addElement(length); } } m_textPendingStart = -1; m_textType = (m_coalescedTextType = 3); } } public void processingInstruction(String target, String data) throws SAXException { charactersFlush(); int dataIndex = m_data.size(); m_previous = addNode(7, 7, m_parents.peek(), m_previous, -dataIndex, false); m_data.addElement(m_valuesOrPrefixes.stringToIndex(target)); m_values.addElement(data); m_data.addElement(m_valueIndex++); } public final int getFirstAttribute(int nodeHandle) { int nodeID = makeNodeIdentity(nodeHandle); if (nodeID == -1) { return -1; } int type = _type2(nodeID); if (1 == type) { for (;;) { nodeID++; type = _type2(nodeID); if (type == 2) { return makeNodeHandle(nodeID); } if (13 != type) { break; } } } return -1; } protected int getFirstAttributeIdentity(int identity) { if (identity == -1) { return -1; } int type = _type2(identity); if (1 == type) { for (;;) { identity++; type = _type2(identity); if (type == 2) { return identity; } if (13 != type) { break; } } } return -1; } protected int getNextAttributeIdentity(int identity) { for (;;) { identity++; int type = _type2(identity); if (type == 2) { return identity; } if (type != 13) { break; } } return -1; } protected final int getTypedAttribute(int nodeHandle, int attType) { int nodeID = makeNodeIdentity(nodeHandle); if (nodeID == -1) { return -1; } int type = _type2(nodeID); if (1 == type) { for (;;) { nodeID++; int expType = _exptype2(nodeID); if (expType != -1) { type = m_extendedTypes[expType].getNodeType(); } else { return -1; } if (type == 2) { if (expType == attType) { return makeNodeHandle(nodeID); } } else if (13 != type) { break; } } } return -1; } public String getLocalName(int nodeHandle) { int expType = _exptype(makeNodeIdentity(nodeHandle)); if (expType == 7) { int dataIndex = _dataOrQName(makeNodeIdentity(nodeHandle)); dataIndex = m_data.elementAt(-dataIndex); return m_valuesOrPrefixes.indexToString(dataIndex); } return m_expandedNameTable.getLocalName(expType); } public final String getNodeNameX(int nodeHandle) { int nodeID = makeNodeIdentity(nodeHandle); int eType = _exptype2(nodeID); if (eType == 7) { int dataIndex = _dataOrQName(nodeID); dataIndex = m_data.elementAt(-dataIndex); return m_valuesOrPrefixes.indexToString(dataIndex); } ExtendedType extType = m_extendedTypes[eType]; if (extType.getNamespace().length() == 0) { return extType.getLocalName(); } int qnameIndex = m_dataOrQName.elementAt(nodeID); if (qnameIndex == 0) { return extType.getLocalName(); } if (qnameIndex < 0) { qnameIndex = -qnameIndex; qnameIndex = m_data.elementAt(qnameIndex); } return m_valuesOrPrefixes.indexToString(qnameIndex); } public String getNodeName(int nodeHandle) { int nodeID = makeNodeIdentity(nodeHandle); int eType = _exptype2(nodeID); ExtendedType extType = m_extendedTypes[eType]; if (extType.getNamespace().length() == 0) { int type = extType.getNodeType(); String localName = extType.getLocalName(); if (type == 13) { if (localName.length() == 0) { return "xmlns"; } return "xmlns:" + localName; } if (type == 7) { int dataIndex = _dataOrQName(nodeID); dataIndex = m_data.elementAt(-dataIndex); return m_valuesOrPrefixes.indexToString(dataIndex); } if (localName.length() == 0) { return getFixedNames(type); } return localName; } int qnameIndex = m_dataOrQName.elementAt(nodeID); if (qnameIndex == 0) { return extType.getLocalName(); } if (qnameIndex < 0) { qnameIndex = -qnameIndex; qnameIndex = m_data.elementAt(qnameIndex); } return m_valuesOrPrefixes.indexToString(qnameIndex); } public XMLString getStringValue(int nodeHandle) { int identity = makeNodeIdentity(nodeHandle); if (identity == -1) { return EMPTY_XML_STR; } int type = _type2(identity); if ((type == 1) || (type == 9)) { int startNode = identity; identity = _firstch2(identity); if (-1 != identity) { int offset = -1; int length = 0; do { type = _exptype2(identity); if ((type == 3) || (type == 4)) { int dataIndex = m_dataOrQName.elementAt(identity); if (dataIndex >= 0) { if (-1 == offset) { offset = dataIndex >>> 10; } length += (dataIndex & 0x3FF); } else { if (-1 == offset) { offset = m_data.elementAt(-dataIndex); } length += m_data.elementAt(-dataIndex + 1); } } identity++; } while (_parent2(identity) >= startNode); if (length > 0) { if (m_xstrf != null) { return m_xstrf.newstr(m_chars, offset, length); } return new XMLStringDefault(m_chars.getString(offset, length)); } return EMPTY_XML_STR; } return EMPTY_XML_STR; } if ((3 == type) || (4 == type)) { int dataIndex = m_dataOrQName.elementAt(identity); if (dataIndex >= 0) { if (m_xstrf != null) { return m_xstrf.newstr(m_chars, dataIndex >>> 10, dataIndex & 0x3FF); } return new XMLStringDefault(m_chars.getString(dataIndex >>> 10, dataIndex & 0x3FF)); } if (m_xstrf != null) { return m_xstrf.newstr(m_chars, m_data.elementAt(-dataIndex), m_data.elementAt(-dataIndex + 1)); } return new XMLStringDefault(m_chars.getString(m_data.elementAt(-dataIndex), m_data.elementAt(-dataIndex + 1))); } int dataIndex = m_dataOrQName.elementAt(identity); if (dataIndex < 0) { dataIndex = -dataIndex; dataIndex = m_data.elementAt(dataIndex + 1); } if (m_xstrf != null) { return m_xstrf.newstr((String)m_values.elementAt(dataIndex)); } return new XMLStringDefault((String)m_values.elementAt(dataIndex)); } public final String getStringValueX(int nodeHandle) { int identity = makeNodeIdentity(nodeHandle); if (identity == -1) { return ""; } int type = _type2(identity); if ((type == 1) || (type == 9)) { int startNode = identity; identity = _firstch2(identity); if (-1 != identity) { int offset = -1; int length = 0; do { type = _exptype2(identity); if ((type == 3) || (type == 4)) { int dataIndex = m_dataOrQName.elementAt(identity); if (dataIndex >= 0) { if (-1 == offset) { offset = dataIndex >>> 10; } length += (dataIndex & 0x3FF); } else { if (-1 == offset) { offset = m_data.elementAt(-dataIndex); } length += m_data.elementAt(-dataIndex + 1); } } identity++; } while (_parent2(identity) >= startNode); if (length > 0) { return m_chars.getString(offset, length); } return ""; } return ""; } if ((3 == type) || (4 == type)) { int dataIndex = m_dataOrQName.elementAt(identity); if (dataIndex >= 0) { return m_chars.getString(dataIndex >>> 10, dataIndex & 0x3FF); } return m_chars.getString(m_data.elementAt(-dataIndex), m_data.elementAt(-dataIndex + 1)); } int dataIndex = m_dataOrQName.elementAt(identity); if (dataIndex < 0) { dataIndex = -dataIndex; dataIndex = m_data.elementAt(dataIndex + 1); } return (String)m_values.elementAt(dataIndex); } public String getStringValue() { int child = _firstch2(0); if (child == -1) { return ""; } if ((_exptype2(child) == 3) && (_nextsib2(child) == -1)) { int dataIndex = m_dataOrQName.elementAt(child); if (dataIndex >= 0) { return m_chars.getString(dataIndex >>> 10, dataIndex & 0x3FF); } return m_chars.getString(m_data.elementAt(-dataIndex), m_data.elementAt(-dataIndex + 1)); } return getStringValueX(getDocument()); } public final void dispatchCharactersEvents(int nodeHandle, ContentHandler ch, boolean normalize) throws SAXException { int identity = makeNodeIdentity(nodeHandle); if (identity == -1) { return; } int type = _type2(identity); if ((type == 1) || (type == 9)) { int startNode = identity; identity = _firstch2(identity); if (-1 != identity) { int offset = -1; int length = 0; do { type = _exptype2(identity); if ((type == 3) || (type == 4)) { int dataIndex = m_dataOrQName.elementAt(identity); if (dataIndex >= 0) { if (-1 == offset) { offset = dataIndex >>> 10; } length += (dataIndex & 0x3FF); } else { if (-1 == offset) { offset = m_data.elementAt(-dataIndex); } length += m_data.elementAt(-dataIndex + 1); } } identity++; } while (_parent2(identity) >= startNode); if (length > 0) { if (normalize) { m_chars.sendNormalizedSAXcharacters(ch, offset, length); } else { m_chars.sendSAXcharacters(ch, offset, length); } } } } else if ((3 == type) || (4 == type)) { int dataIndex = m_dataOrQName.elementAt(identity); if (dataIndex >= 0) { if (normalize) { m_chars.sendNormalizedSAXcharacters(ch, dataIndex >>> 10, dataIndex & 0x3FF); } else { m_chars.sendSAXcharacters(ch, dataIndex >>> 10, dataIndex & 0x3FF); } } else if (normalize) { m_chars.sendNormalizedSAXcharacters(ch, m_data.elementAt(-dataIndex), m_data.elementAt(-dataIndex + 1)); } else { m_chars.sendSAXcharacters(ch, m_data.elementAt(-dataIndex), m_data.elementAt(-dataIndex + 1)); } } else { int dataIndex = m_dataOrQName.elementAt(identity); if (dataIndex < 0) { dataIndex = -dataIndex; dataIndex = m_data.elementAt(dataIndex + 1); } String str = (String)m_values.elementAt(dataIndex); if (normalize) { FastStringBuffer.sendNormalizedSAXcharacters(str.toCharArray(), 0, str.length(), ch); } else { ch.characters(str.toCharArray(), 0, str.length()); } } } public String getNodeValue(int nodeHandle) { int identity = makeNodeIdentity(nodeHandle); int type = _type2(identity); if ((type == 3) || (type == 4)) { int dataIndex = _dataOrQName(identity); if (dataIndex > 0) { return m_chars.getString(dataIndex >>> 10, dataIndex & 0x3FF); } return m_chars.getString(m_data.elementAt(-dataIndex), m_data.elementAt(-dataIndex + 1)); } if ((1 == type) || (11 == type) || (9 == type)) { return null; } int dataIndex = m_dataOrQName.elementAt(identity); if (dataIndex < 0) { dataIndex = -dataIndex; dataIndex = m_data.elementAt(dataIndex + 1); } return (String)m_values.elementAt(dataIndex); } protected final void copyTextNode(int nodeID, SerializationHandler handler) throws SAXException { if (nodeID != -1) { int dataIndex = m_dataOrQName.elementAt(nodeID); if (dataIndex >= 0) { m_chars.sendSAXcharacters(handler, dataIndex >>> 10, dataIndex & 0x3FF); } else { m_chars.sendSAXcharacters(handler, m_data.elementAt(-dataIndex), m_data.elementAt(-dataIndex + 1)); } } } protected final String copyElement(int nodeID, int exptype, SerializationHandler handler) throws SAXException { ExtendedType extType = m_extendedTypes[exptype]; String uri = extType.getNamespace(); String name = extType.getLocalName(); if (uri.length() == 0) { handler.startElement(name); return name; } int qnameIndex = m_dataOrQName.elementAt(nodeID); if (qnameIndex == 0) { handler.startElement(name); handler.namespaceAfterStartElement("", uri); return name; } if (qnameIndex < 0) { qnameIndex = -qnameIndex; qnameIndex = m_data.elementAt(qnameIndex); } String qName = m_valuesOrPrefixes.indexToString(qnameIndex); handler.startElement(qName); int prefixIndex = qName.indexOf(':'); String prefix; if (prefixIndex > 0) { prefix = qName.substring(0, prefixIndex); } else { prefix = null; } handler.namespaceAfterStartElement(prefix, uri); return qName; } protected final void copyNS(int nodeID, SerializationHandler handler, boolean inScope) throws SAXException { if ((m_namespaceDeclSetElements != null) && (m_namespaceDeclSetElements.size() == 1) && (m_namespaceDeclSets != null) && (((SuballocatedIntVector)m_namespaceDeclSets.elementAt(0)).size() == 1)) { return; } SuballocatedIntVector nsContext = null; int nextNSNode; if (inScope) { nsContext = findNamespaceContext(nodeID); if ((nsContext == null) || (nsContext.size() < 1)) { return; } nextNSNode = makeNodeIdentity(nsContext.elementAt(0)); } else { nextNSNode = getNextNamespaceNode2(nodeID); } int nsIndex = 1; while (nextNSNode != -1) { int eType = _exptype2(nextNSNode); String nodeName = m_extendedTypes[eType].getLocalName(); int dataIndex = m_dataOrQName.elementAt(nextNSNode); if (dataIndex < 0) { dataIndex = -dataIndex; dataIndex = m_data.elementAt(dataIndex + 1); } String nodeValue = (String)m_values.elementAt(dataIndex); handler.namespaceAfterStartElement(nodeName, nodeValue); if (inScope) { if (nsIndex < nsContext.size()) { nextNSNode = makeNodeIdentity(nsContext.elementAt(nsIndex)); nsIndex++; } } else { nextNSNode = getNextNamespaceNode2(nextNSNode); } } } protected final int getNextNamespaceNode2(int baseID) { int type; while ((type = _type2(++baseID)) == 2) {} if (type == 13) { return baseID; } return -1; } protected final void copyAttributes(int nodeID, SerializationHandler handler) throws SAXException { for (int current = getFirstAttributeIdentity(nodeID); current != -1; current = getNextAttributeIdentity(current)) { int eType = _exptype2(current); copyAttribute(current, eType, handler); } } protected final void copyAttribute(int nodeID, int exptype, SerializationHandler handler) throws SAXException { ExtendedType extType = m_extendedTypes[exptype]; String uri = extType.getNamespace(); String localName = extType.getLocalName(); String prefix = null; String qname = null; int dataIndex = _dataOrQName(nodeID); int valueIndex = dataIndex; if (dataIndex <= 0) { int prefixIndex = m_data.elementAt(-dataIndex); valueIndex = m_data.elementAt(-dataIndex + 1); qname = m_valuesOrPrefixes.indexToString(prefixIndex); int colonIndex = qname.indexOf(':'); if (colonIndex > 0) { prefix = qname.substring(0, colonIndex); } } if (uri.length() != 0) { handler.namespaceAfterStartElement(prefix, uri); } String nodeName = prefix != null ? qname : localName; String nodeValue = (String)m_values.elementAt(valueIndex); handler.addAttribute(nodeName, nodeValue); } } /* Location: * Qualified Name: org.apache.xml.dtm.ref.sax2dtm.SAX2DTM2 * Java Class Version: 1.1 (45.3) * JD-Core Version: 0.7.1 */ package org.apache.xml.dtm.ref.sax2dtm; import java.util.Vector; import javax.xml.transform.Source; import org.apache.xml.dtm.DTMManager; import org.apache.xml.dtm.DTMWSFilter; import org.apache.xml.dtm.ref.DTMDefaultBase; import org.apache.xml.utils.FastStringBuffer; import org.apache.xml.utils.IntStack; import org.apache.xml.utils.IntVector; import org.apache.xml.utils.StringVector; import org.apache.xml.utils.SuballocatedIntVector; import org.apache.xml.utils.XMLStringFactory; import org.xml.sax.SAXException; public class SAX2RTFDTM extends SAX2DTM { private static final boolean DEBUG = false; private int m_currentDocumentNode = -1; IntStack mark_size = new IntStack(); IntStack mark_data_size = new IntStack(); IntStack mark_char_size = new IntStack(); IntStack mark_doq_size = new IntStack(); IntStack mark_nsdeclset_size = new IntStack(); IntStack mark_nsdeclelem_size = new IntStack(); int m_emptyNodeCount; int m_emptyNSDeclSetCount; int m_emptyNSDeclSetElemsCount; int m_emptyDataCount; int m_emptyCharsCount; int m_emptyDataQNCount; public SAX2RTFDTM(DTMManager mgr, Source source, int dtmIdentity, DTMWSFilter whiteSpaceFilter, XMLStringFactory xstringfactory, boolean doIndexing) { super(mgr, source, dtmIdentity, whiteSpaceFilter, xstringfactory, doIndexing); m_useSourceLocationProperty = false; m_sourceSystemId = (m_useSourceLocationProperty ? new StringVector() : null); m_sourceLine = (m_useSourceLocationProperty ? new IntVector() : null); m_sourceColumn = (m_useSourceLocationProperty ? new IntVector() : null); m_emptyNodeCount = m_size; m_emptyNSDeclSetCount = (m_namespaceDeclSets == null ? 0 : m_namespaceDeclSets.size()); m_emptyNSDeclSetElemsCount = (m_namespaceDeclSetElements == null ? 0 : m_namespaceDeclSetElements.size()); m_emptyDataCount = m_data.size(); m_emptyCharsCount = m_chars.size(); m_emptyDataQNCount = m_dataOrQName.size(); } public int getDocument() { return makeNodeHandle(m_currentDocumentNode); } public int getDocumentRoot(int nodeHandle) { for (int id = makeNodeIdentity(nodeHandle); id != -1; id = _parent(id)) { if (_type(id) == 9) { return makeNodeHandle(id); } } return -1; } protected int _documentRoot(int nodeIdentifier) { if (nodeIdentifier == -1) { return -1; } for (int parent = _parent(nodeIdentifier); parent != -1; parent = _parent(nodeIdentifier)) { nodeIdentifier = parent; } return nodeIdentifier; } public void startDocument() throws SAXException { m_endDocumentOccured = false; m_prefixMappings = new Vector(); m_contextIndexes = new IntStack(); m_parents = new IntStack(); m_currentDocumentNode = m_size; super.startDocument(); } public void endDocument() throws SAXException { charactersFlush(); m_nextsib.setElementAt(-1, m_currentDocumentNode); if (m_firstch.elementAt(m_currentDocumentNode) == -2) { m_firstch.setElementAt(-1, m_currentDocumentNode); } if (-1 != m_previous) { m_nextsib.setElementAt(-1, m_previous); } m_parents = null; m_prefixMappings = null; m_contextIndexes = null; m_currentDocumentNode = -1; m_endDocumentOccured = true; } public void pushRewindMark() { if ((m_indexing) || (m_elemIndexes != null)) { throw new NullPointerException("Coding error; Don't try to mark/rewind an indexed DTM"); } mark_size.push(m_size); mark_nsdeclset_size.push(m_namespaceDeclSets == null ? 0 : m_namespaceDeclSets.size()); mark_nsdeclelem_size.push(m_namespaceDeclSetElements == null ? 0 : m_namespaceDeclSetElements.size()); mark_data_size.push(m_data.size()); mark_char_size.push(m_chars.size()); mark_doq_size.push(m_dataOrQName.size()); } public boolean popRewindMark() { boolean top = mark_size.empty(); m_size = (top ? m_emptyNodeCount : mark_size.pop()); m_exptype.setSize(m_size); m_firstch.setSize(m_size); m_nextsib.setSize(m_size); m_prevsib.setSize(m_size); m_parent.setSize(m_size); m_elemIndexes = null; int ds = top ? m_emptyNSDeclSetCount : mark_nsdeclset_size.pop(); if (m_namespaceDeclSets != null) { m_namespaceDeclSets.setSize(ds); } int ds1 = top ? m_emptyNSDeclSetElemsCount : mark_nsdeclelem_size.pop(); if (m_namespaceDeclSetElements != null) { m_namespaceDeclSetElements.setSize(ds1); } m_data.setSize(top ? m_emptyDataCount : mark_data_size.pop()); m_chars.setLength(top ? m_emptyCharsCount : mark_char_size.pop()); m_dataOrQName.setSize(top ? m_emptyDataQNCount : mark_doq_size.pop()); return m_size == 0; } public boolean isTreeIncomplete() { return !m_endDocumentOccured; } } /* Location: * Qualified Name: org.apache.xml.dtm.ref.sax2dtm.SAX2RTFDTM * Java Class Version: 1.1 (45.3) * JD-Core Version: 0.7.1 */ package org.apache.xml.res; import java.util.ListResourceBundle; import java.util.Locale; import java.util.MissingResourceException; import java.util.ResourceBundle; public class XMLErrorResources extends ListResourceBundle { public static final String ER_FUNCTION_NOT_SUPPORTED = "ER_FUNCTION_NOT_SUPPORTED"; public static final String ER_CANNOT_OVERWRITE_CAUSE = "ER_CANNOT_OVERWRITE_CAUSE"; public static final String ER_NO_DEFAULT_IMPL = "ER_NO_DEFAULT_IMPL"; public static final String ER_CHUNKEDINTARRAY_NOT_SUPPORTED = "ER_CHUNKEDINTARRAY_NOT_SUPPORTED"; public static final String ER_OFFSET_BIGGER_THAN_SLOT = "ER_OFFSET_BIGGER_THAN_SLOT"; public static final String ER_COROUTINE_NOT_AVAIL = "ER_COROUTINE_NOT_AVAIL"; public static final String ER_COROUTINE_CO_EXIT = "ER_COROUTINE_CO_EXIT"; public static final String ER_COJOINROUTINESET_FAILED = "ER_COJOINROUTINESET_FAILED"; public static final String ER_COROUTINE_PARAM = "ER_COROUTINE_PARAM"; public static final String ER_PARSER_DOTERMINATE_ANSWERS = "ER_PARSER_DOTERMINATE_ANSWERS"; public static final String ER_NO_PARSE_CALL_WHILE_PARSING = "ER_NO_PARSE_CALL_WHILE_PARSING"; public static final String ER_TYPED_ITERATOR_AXIS_NOT_IMPLEMENTED = "ER_TYPED_ITERATOR_AXIS_NOT_IMPLEMENTED"; public static final String ER_ITERATOR_AXIS_NOT_IMPLEMENTED = "ER_ITERATOR_AXIS_NOT_IMPLEMENTED"; public static final String ER_ITERATOR_CLONE_NOT_SUPPORTED = "ER_ITERATOR_CLONE_NOT_SUPPORTED"; public static final String ER_UNKNOWN_AXIS_TYPE = "ER_UNKNOWN_AXIS_TYPE"; public static final String ER_AXIS_NOT_SUPPORTED = "ER_AXIS_NOT_SUPPORTED"; public static final String ER_NO_DTMIDS_AVAIL = "ER_NO_DTMIDS_AVAIL"; public static final String ER_NOT_SUPPORTED = "ER_NOT_SUPPORTED"; public static final String ER_NODE_NON_NULL = "ER_NODE_NON_NULL"; public static final String ER_COULD_NOT_RESOLVE_NODE = "ER_COULD_NOT_RESOLVE_NODE"; public static final String ER_STARTPARSE_WHILE_PARSING = "ER_STARTPARSE_WHILE_PARSING"; public static final String ER_STARTPARSE_NEEDS_SAXPARSER = "ER_STARTPARSE_NEEDS_SAXPARSER"; public static final String ER_COULD_NOT_INIT_PARSER = "ER_COULD_NOT_INIT_PARSER"; public static final String ER_EXCEPTION_CREATING_POOL = "ER_EXCEPTION_CREATING_POOL"; public static final String ER_PATH_CONTAINS_INVALID_ESCAPE_SEQUENCE = "ER_PATH_CONTAINS_INVALID_ESCAPE_SEQUENCE"; public static final String ER_SCHEME_REQUIRED = "ER_SCHEME_REQUIRED"; public static final String ER_NO_SCHEME_IN_URI = "ER_NO_SCHEME_IN_URI"; public static final String ER_NO_SCHEME_INURI = "ER_NO_SCHEME_INURI"; public static final String ER_PATH_INVALID_CHAR = "ER_PATH_INVALID_CHAR"; public static final String ER_SCHEME_FROM_NULL_STRING = "ER_SCHEME_FROM_NULL_STRING"; public static final String ER_SCHEME_NOT_CONFORMANT = "ER_SCHEME_NOT_CONFORMANT"; public static final String ER_HOST_ADDRESS_NOT_WELLFORMED = "ER_HOST_ADDRESS_NOT_WELLFORMED"; public static final String ER_PORT_WHEN_HOST_NULL = "ER_PORT_WHEN_HOST_NULL"; public static final String ER_INVALID_PORT = "ER_INVALID_PORT"; public static final String ER_FRAG_FOR_GENERIC_URI = "ER_FRAG_FOR_GENERIC_URI"; public static final String ER_FRAG_WHEN_PATH_NULL = "ER_FRAG_WHEN_PATH_NULL"; public static final String ER_FRAG_INVALID_CHAR = "ER_FRAG_INVALID_CHAR"; public static final String ER_PARSER_IN_USE = "ER_PARSER_IN_USE"; public static final String ER_CANNOT_CHANGE_WHILE_PARSING = "ER_CANNOT_CHANGE_WHILE_PARSING"; public static final String ER_SELF_CAUSATION_NOT_PERMITTED = "ER_SELF_CAUSATION_NOT_PERMITTED"; public static final String ER_NO_USERINFO_IF_NO_HOST = "ER_NO_USERINFO_IF_NO_HOST"; public static final String ER_NO_PORT_IF_NO_HOST = "ER_NO_PORT_IF_NO_HOST"; public static final String ER_NO_QUERY_STRING_IN_PATH = "ER_NO_QUERY_STRING_IN_PATH"; public static final String ER_NO_FRAGMENT_STRING_IN_PATH = "ER_NO_FRAGMENT_STRING_IN_PATH"; public static final String ER_CANNOT_INIT_URI_EMPTY_PARMS = "ER_CANNOT_INIT_URI_EMPTY_PARMS"; public static final String ER_METHOD_NOT_SUPPORTED = "ER_METHOD_NOT_SUPPORTED"; public static final String ER_INCRSAXSRCFILTER_NOT_RESTARTABLE = "ER_INCRSAXSRCFILTER_NOT_RESTARTABLE"; public static final String ER_XMLRDR_NOT_BEFORE_STARTPARSE = "ER_XMLRDR_NOT_BEFORE_STARTPARSE"; public static final String ER_AXIS_TRAVERSER_NOT_SUPPORTED = "ER_AXIS_TRAVERSER_NOT_SUPPORTED"; public static final String ER_ERRORHANDLER_CREATED_WITH_NULL_PRINTWRITER = "ER_ERRORHANDLER_CREATED_WITH_NULL_PRINTWRITER"; public static final String ER_SYSTEMID_UNKNOWN = "ER_SYSTEMID_UNKNOWN"; public static final St Further reading...For more information on Java 1.5 Tiger, you may find Java 1.5 Tiger, A developer's Notebook by D. Flanagan and B. McLaughlin from O'Reilly of interest.New!JAR listings
|