Package org.rumbledb.items.xml
Class ElementItem
java.lang.Object
org.rumbledb.items.xml.ElementItem
- All Implemented Interfaces:
com.esotericsoftware.kryo.KryoSerializable,Serializable,Item
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddOrReplaceNamespace(Item namespaceItem) voidMethod sets the parent item for all descendents of the current item.XDM 3.1 Section 5.12 string-value Accessor.XDM 3.1 Section 5.1 attributes Accessor.baseUri()XDM 3.1 Section 6.2 Element Node Accessors — base-uri.children()XDM 3.1 Section 5.3 children Accessor.Helper accessor for XML element nodes: returns namespace nodes for the namespace bindings declared directly on the element.XDM 3.1 Section 6.2 Element Node Accessors — document-uri.booleanTests for logical equality.Returns the dynamic type of the item (only for error message purposes).booleanReturns the effective boolean value of the item, if atomic.Returns the string value of the item, if it is an atomic item.Get the position of the Node inside the XML document (and path incase of multiple docs) for sorting / uniquenessinthashCode()Computes a hash code.booleanTests whether the item is an XML Element node.booleanisId()XDM 3.1 Section 6.2 Element Node Accessors — is-id.booleanisIdrefs()XDM 3.1 Section 6.2 Element Node Accessors — is-idrefs.booleanisNode()Tests whether the item is an XML node.XDM 3.1 Section 5.7 namespace-nodes Accessor.nilled()XDM 3.1 Section 6.2 Element Node Accessors — nilled.nodeKind()XDM 3.1 Section 6.2 Element Node Accessors — node-kind.nodeName()XDM 3.1 Section 5.10 node-name Accessor.parent()XDM 3.1 Section 5.11 parent Accessor.voidread(com.esotericsoftware.kryo.Kryo kryo, com.esotericsoftware.kryo.io.Input input) voidintsetXmlDocumentPosition(String path, int current) Set the position of the Node inside the XML document (and path incase of multiple docs) for sorting / uniquenessXDM 3.1 Section 6.2 Element Node Accessors — typed-value.typeName()XDM 3.1 Section 6.2 Element Node Accessors — type-name.voidwrite(com.esotericsoftware.kryo.Kryo kryo, com.esotericsoftware.kryo.io.Output output) Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.rumbledb.api.Item
append, appendItem, appendSequence, castToDecimalValue, castToDoubleValue, castToFloatValue, castToIntegerValue, castToIntValue, generateNativeQuery, getBinaryValue, getBodyIterator, getBooleanValue, getCollection, getContent, getDateTimeValue, getDay, getDecimalValue, getDFVariablesInClosure, getDoubleValue, getDurationValue, getEpochMillis, getEstimator, getFloatValue, getHour, getIdentifier, getIntegerValue, getIntValue, getItemAt, getItemByKey, getItemByKey, getItemKeys, getItemMembers, getItems, getItemValues, getKeys, getLocalVariablesInClosure, getMinute, getModuleDynamicContext, getMonth, getMutabilityLevel, getNanosecond, getOffset, getParameterNames, getPathIn, getPeriodValue, getQNameValue, getRDDVariablesInClosure, getSecond, getSequenceAt, getSequenceByKey, getSequenceByKey, getSequenceMembers, getSequenceValues, getSignature, getSize, getSparkSQLType, getSparkSQLValue, getSparkSQLValue, getStringKeys, getTableLocation, getTextValue, getTimeValue, getTopLevelID, getTopLevelOrder, getTransformer, getValues, getVariantValue, getYear, hasDateTime, hasTimeZone, isAnyURI, isArray, isArrayOfItems, isAtomic, isAttributeNode, isBase64Binary, isBinary, isBoolean, isBuiltinFunction, isCommentNode, isDate, isDateTime, isDayTimeDuration, isDecimal, isDocumentNode, isDouble, isDuration, isEstimator, isFloat, isFunction, isGDay, isGMonth, isGMonthDay, isGYear, isGYearMonth, isHexBinary, isInt, isInteger, isMap, isNamespaceNode, isNaN, isNull, isNumeric, isObject, isPeriod, isProcessingInstructionNode, isQName, isString, isTextNode, isTime, isTransformer, isUntypedAtomic, isYearMonthDuration, physicalEquals, putItemAt, putItemByKey, putItemByKey, putItemsAt, putLazyItemByKey, putSequenceAt, putSequenceByKey, putSequenceByKey, putSequencesAt, removeItemAt, removeItemByKey, removeItemByKey, removeSequenceAt, serialize, serializeAsJSON, setCollection, setMutabilityLevel, setPathIn, setTableLocation, setTopLevelID, setTopLevelOrder, unparsedEntityPublicId, unparsedEntitySystemId
-
Constructor Details
-
ElementItem
public ElementItem() -
ElementItem
Constructed element with a resolved expanded name (e.g. from XQuery direct/computed constructors). -
ElementItem
-
ElementItem
-
-
Method Details
-
setXmlDocumentPosition
Description copied from interface:ItemSet the position of the Node inside the XML document (and path incase of multiple docs) for sorting / uniqueness- Specified by:
setXmlDocumentPositionin interfaceItem- Parameters:
path- the path of the XML documentcurrent- the current position- Returns:
- the new position
-
getXmlDocumentPosition
Description copied from interface:ItemGet the position of the Node inside the XML document (and path incase of multiple docs) for sorting / uniqueness- Specified by:
getXmlDocumentPositionin interfaceItem- Returns:
- the XML document position
-
addParentToDescendants
public void addParentToDescendants()Description copied from interface:ItemMethod sets the parent item for all descendents of the current item.- Specified by:
addParentToDescendantsin interfaceItem
-
write
public void write(com.esotericsoftware.kryo.Kryo kryo, com.esotericsoftware.kryo.io.Output output) - Specified by:
writein interfacecom.esotericsoftware.kryo.KryoSerializable
-
read
public void read(com.esotericsoftware.kryo.Kryo kryo, com.esotericsoftware.kryo.io.Input input) - Specified by:
readin interfacecom.esotericsoftware.kryo.KryoSerializable
-
isNode
public boolean isNode()Description copied from interface:ItemTests whether the item is an XML node. -
isElementNode
public boolean isElementNode()Description copied from interface:ItemTests whether the item is an XML Element node.- Specified by:
isElementNodein interfaceItem- Returns:
- true if it is an XML Element node, false otherwise.
-
equals
Description copied from interface:ItemTests for logical equality. The semantics are that of the eq operator. -
attributes
Description copied from interface:ItemXDM 3.1 Section 5.1 attributes Accessor. dm:attributes($n as node()) as attribute()* "The dm:attributes accessor returns the dynamic, unordered set of attribute nodes that have the node as their parent. It is defined only on element and document nodes; for other node kinds it returns the empty sequence."- Specified by:
attributesin interfaceItem
-
children
Description copied from interface:ItemXDM 3.1 Section 5.3 children Accessor. dm:children($n as node()) as node()* "The dm:children accessor returns the dynamic, ordered sequence of child nodes of the node. It is defined on all node kinds except attribute and namespace nodes; for those node kinds it returns the empty sequence." -
nodeKind
XDM 3.1 Section 6.2 Element Node Accessors — node-kind. "For an Element Node, dm:node-kind returns the string \"element\"." -
baseUri
XDM 3.1 Section 6.2 Element Node Accessors — base-uri. "For an Element Node, dm:base-uri returns the base URI of the element node, if it has one; otherwise it returns the empty sequence." RumbleDB does not currently track base URIs for element nodes, so this implementation returns null to represent the empty sequence. -
documentUri
XDM 3.1 Section 6.2 Element Node Accessors — document-uri. "For an Element Node, dm:document-uri returns the document URI of the document node that is the root of the tree containing the element, if it has one; otherwise it returns the empty sequence." This implementation delegates to the parent, if any, otherwise returns null.- Specified by:
documentUriin interfaceItem
-
declaredNamespaceNodes
Description copied from interface:ItemHelper accessor for XML element nodes: returns namespace nodes for the namespace bindings declared directly on the element. This does not include inherited or statically known namespaces — only the bindings explicitly declared on the element (for example via xmlns attributes). Non-element nodes must override this to return the empty sequence.- Specified by:
declaredNamespaceNodesin interfaceItem
-
namespaceNodes
Description copied from interface:ItemXDM 3.1 Section 5.7 namespace-nodes Accessor. dm:namespace-nodes($n as node()) as namespace-node()* "The dm:namespace-nodes accessor returns the dynamic, unordered set of Namespace Nodes. It is defined on all seven node kinds." This default implementation is only a placeholder on the generic Item interface and must be overridden by XML node implementations that support namespaces.- Specified by:
namespaceNodesin interfaceItem
-
isId
public boolean isId()XDM 3.1 Section 6.2 Element Node Accessors — is-id. "For an Element Node, dm:is-id returns false." -
isIdrefs
public boolean isIdrefs()XDM 3.1 Section 6.2 Element Node Accessors — is-idrefs. "For an Element Node, dm:is-idrefs returns false." -
nilled
XDM 3.1 Section 6.2 Element Node Accessors — nilled. "For an Element Node, dm:nilled returns true if the element is nilled, false if it is not nilled, or the empty sequence if the concept of nilled does not apply." RumbleDB does not currently support XML Schema nilled elements, so this implementation returns the empty sequence. -
nodeName
Description copied from interface:ItemXDM 3.1 Section 5.10 node-name Accessor. dm:node-name($n as node()) as xs:QName? "The dm:node-name accessor returns the name of the node as an xs:QName, or the empty sequence if the node does not have a name." -
parent
Description copied from interface:ItemXDM 3.1 Section 5.11 parent Accessor. dm:parent($n as node()) as node()? "The dm:parent accessor returns the parent of the node, or the empty sequence if the node has no parent." -
getStringValue
Description copied from interface:ItemReturns the string value of the item, if it is an atomic item.- Specified by:
getStringValuein interfaceItem- Returns:
- the string value.
-
getDynamicType
Description copied from interface:ItemReturns the dynamic type of the item (only for error message purposes).- Specified by:
getDynamicTypein interfaceItem- Returns:
- the dynamic type as an item type.
-
setParent
-
typeName
XDM 3.1 Section 6.2 Element Node Accessors — type-name. "For an Element Node, dm:type-name returns the name of the dynamic type of the element node, or the empty sequence if the node is untyped." RumbleDB does not currently support schema-validated element types, so the dynamic type-name is not available and this method returns null to represent the empty sequence. -
typedValue
XDM 3.1 Section 6.2 Element Node Accessors — typed-value. "For an Element Node, dm:typed-value returns the typed value of the element node as a sequence of zero or more atomic values." This implementation delegates to atomizedValue(), which currently computes a best-effort typed value by concatenating the atomized values of the element's children in document order.- Specified by:
typedValuein interfaceItem
-
addOrReplaceNamespace
-
hashCode
public int hashCode()Description copied from interface:ItemComputes a hash code. -
atomizedValue
Description copied from interface:ItemXDM 3.1 Section 5.12 string-value Accessor. dm:string-value($n as node()) as xs:string "The dm:string-value accessor returns the string-value of the node as defined for each node kind." In this API, node string values are exposed via getStringValue() and the default implementation of dm:typed-value delegates to atomizedValue().- Specified by:
atomizedValuein interfaceItem
-
getEffectiveBooleanValue
public boolean getEffectiveBooleanValue()Description copied from interface:ItemReturns the effective boolean value of the item, if atomic.- Specified by:
getEffectiveBooleanValuein interfaceItem- Returns:
- the effective boolean value.
-