Package org.mozilla.javascript.ast
Class XmlRef
java.lang.Object
org.mozilla.javascript.Node
org.mozilla.javascript.ast.AstNode
org.mozilla.javascript.ast.XmlRef
- All Implemented Interfaces:
Comparable<AstNode>
,Iterable<Node>
- Direct Known Subclasses:
XmlElemRef
,XmlPropRef
Base class for E4X XML attribute-access or property-get expressions. Such expressions can take a
variety of forms. The general syntax has three parts:
- optional: an
@
(specifying an attribute access) - optional: a namespace (a
Name
) and double-colon - required: either a
Name
or a bracketed [expression]
ns::name
, @name
) are represented as
XmlPropRef
nodes. The bracketed-expression versions (examples: ns::[name]
,
@[name]
) become XmlElemRef
nodes.
This node type (or more specifically, its subclasses) will sometimes be the right-hand child
of a PropertyGet
node or an XmlMemberGet
node. The XmlRef
node may also
be a standalone primary expression with no explicit target, which is valid in certain expression
contexts such as company..employee.(@id < 100)
- in this case, the @id
is an
XmlRef
that is part of an infix '<' expression whose parent is an XmlDotQuery
node.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.mozilla.javascript.ast.AstNode
AstNode.DebugPrintVisitor, AstNode.PositionComparator
Nested classes/interfaces inherited from class org.mozilla.javascript.Node
Node.NodeIterator
-
Field Summary
Fields inherited from class org.mozilla.javascript.ast.AstNode
inlineComment, length, parent, position
Fields inherited from class org.mozilla.javascript.Node
ARROW_FUNCTION_PROP, ATTRIBUTE_FLAG, BOTH, CASEARRAY_PROP, CATCH_SCOPE_PROP, CONTROL_BLOCK_PROP, DECR_FLAG, DESCENDANTS_FLAG, DESTRUCTURING_ARRAY_LENGTH, DESTRUCTURING_NAMES, DESTRUCTURING_PARAMS, DIRECTCALL_PROP, END_DROPS_OFF, END_RETURNS, END_RETURNS_VALUE, END_UNREACHED, END_YIELDS, EXPRESSION_CLOSURE_PROP, first, FUNCTION_PROP, GENERATOR_END_PROP, INCRDECR_PROP, ISNUMBER_PROP, JSDOC_PROP, LABEL_ID_PROP, last, LAST_PROP, LEFT, lineno, LOCAL_BLOCK_PROP, LOCAL_PROP, MEMBER_TYPE_PROP, NAME_PROP, next, NON_SPECIALCALL, OBJECT_IDS_PROP, OBJECT_LITERAL_DESTRUCTURING, OPTIONAL_CHAINING, PARENTHESIZED_PROP, POST_FLAG, PROPERTY_FLAG, propListHead, REGEXP_PROP, RIGHT, SKIP_INDEXES_PROP, SPECIALCALL_EVAL, SPECIALCALL_PROP, SPECIALCALL_WITH, TARGETBLOCK_PROP, TEMPLATE_LITERAL_PROP, TRAILING_COMMA, type, VARIABLE_PROP
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionint
getAtPos()
Returns position of@
-token, or -1 if this is not an attribute-access expression.int
Returns position of::
token, or -1 if not present.Return the namespace.boolean
Returnstrue
if this expression began with an@
-token.void
setAtPos
(int atPos) Sets position of@
-token, or -1void
setColonPos
(int colonPos) Sets position of::
token, or -1 if not presentvoid
setNamespace
(Name namespace) Sets namespace, and sets its parent to this node.Methods inherited from class org.mozilla.javascript.ast.AstNode
addChild, assertNotNull, codeBug, compareTo, debugPrint, depth, getAbsolutePosition, getAstRoot, getEnclosingFunction, getEnclosingScope, getInlineComment, getLength, getLineno, getParent, getPosition, hasSideEffects, makeIndent, operatorToString, printList, setBounds, setInlineComment, setLength, setParent, setPosition, setRelative, shortName, toSource, toSource, visit
Methods inherited from class org.mozilla.javascript.Node
addChildAfter, addChildBefore, addChildrenToBack, addChildrenToFront, addChildToBack, addChildToFront, getBigInt, getChildBefore, getColumn, getDouble, getExistingIntProp, getFirstChild, getIntProp, getJsDoc, getJsDocNode, getLastChild, getLastSibling, getNext, getProp, getScope, getString, getType, hasChildren, hasConsistentReturnUsage, iterator, labelId, labelId, newNumber, newString, newString, newTarget, putIntProp, putProp, removeChild, removeChildren, removeProp, replaceChild, replaceChildAfter, resetTargets, setBigInt, setDouble, setJsDocNode, setLineColumnNumber, setScope, setString, setType, toString, toStringTree
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
namespace
-
atPos
protected int atPos -
colonPos
protected int colonPos
-
-
Constructor Details
-
XmlRef
public XmlRef() -
XmlRef
public XmlRef(int pos) -
XmlRef
public XmlRef(int pos, int len)
-
-
Method Details
-
getNamespace
Return the namespace. May be@null
. -
setNamespace
Sets namespace, and sets its parent to this node. Can benull
. -
isAttributeAccess
public boolean isAttributeAccess()Returnstrue
if this expression began with an@
-token. -
getAtPos
public int getAtPos()Returns position of@
-token, or -1 if this is not an attribute-access expression. -
setAtPos
public void setAtPos(int atPos) Sets position of@
-token, or -1 -
getColonPos
public int getColonPos()Returns position of::
token, or -1 if not present. It will only be present if the namespace node is non-null
. -
setColonPos
public void setColonPos(int colonPos) Sets position of::
token, or -1 if not present
-