Package com.saxonica.xqj
Class SaxonXQItemType
- java.lang.Object
-
- com.saxonica.xqj.SaxonXQItemType
-
- All Implemented Interfaces:
XQItemType
,XQSequenceType
public class SaxonXQItemType extends java.lang.Object implements XQItemType
Saxon implementation of the XQJ XQItemType interface
-
-
Field Summary
-
Fields inherited from interface javax.xml.xquery.XQItemType
XQBASETYPE_ANYATOMICTYPE, XQBASETYPE_ANYSIMPLETYPE, XQBASETYPE_ANYTYPE, XQBASETYPE_ANYURI, XQBASETYPE_BASE64BINARY, XQBASETYPE_BOOLEAN, XQBASETYPE_BYTE, XQBASETYPE_DATE, XQBASETYPE_DATETIME, XQBASETYPE_DAYTIMEDURATION, XQBASETYPE_DECIMAL, XQBASETYPE_DOUBLE, XQBASETYPE_DURATION, XQBASETYPE_ENTITIES, XQBASETYPE_ENTITY, XQBASETYPE_FLOAT, XQBASETYPE_GDAY, XQBASETYPE_GMONTH, XQBASETYPE_GMONTHDAY, XQBASETYPE_GYEAR, XQBASETYPE_GYEARMONTH, XQBASETYPE_HEXBINARY, XQBASETYPE_ID, XQBASETYPE_IDREF, XQBASETYPE_IDREFS, XQBASETYPE_INT, XQBASETYPE_INTEGER, XQBASETYPE_LANGUAGE, XQBASETYPE_LONG, XQBASETYPE_NAME, XQBASETYPE_NCNAME, XQBASETYPE_NEGATIVE_INTEGER, XQBASETYPE_NMTOKEN, XQBASETYPE_NMTOKENS, XQBASETYPE_NONNEGATIVE_INTEGER, XQBASETYPE_NONPOSITIVE_INTEGER, XQBASETYPE_NORMALIZED_STRING, XQBASETYPE_NOTATION, XQBASETYPE_POSITIVE_INTEGER, XQBASETYPE_QNAME, XQBASETYPE_SHORT, XQBASETYPE_STRING, XQBASETYPE_TIME, XQBASETYPE_TOKEN, XQBASETYPE_UNSIGNED_BYTE, XQBASETYPE_UNSIGNED_INT, XQBASETYPE_UNSIGNED_LONG, XQBASETYPE_UNSIGNED_SHORT, XQBASETYPE_UNTYPED, XQBASETYPE_UNTYPEDATOMIC, XQBASETYPE_YEARMONTHDURATION, XQITEMKIND_ATOMIC, XQITEMKIND_ATTRIBUTE, XQITEMKIND_COMMENT, XQITEMKIND_DOCUMENT, XQITEMKIND_DOCUMENT_ELEMENT, XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT, XQITEMKIND_ELEMENT, XQITEMKIND_ITEM, XQITEMKIND_NODE, XQITEMKIND_PI, XQITEMKIND_SCHEMA_ATTRIBUTE, XQITEMKIND_SCHEMA_ELEMENT, XQITEMKIND_TEXT
-
Fields inherited from interface javax.xml.xquery.XQSequenceType
OCC_EMPTY, OCC_EXACTLY_ONE, OCC_ONE_OR_MORE, OCC_ZERO_OR_MORE, OCC_ZERO_OR_ONE
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
SaxonXQItemType(NodeInfo node)
protected
SaxonXQItemType(ItemType itemType, Configuration config)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(java.lang.Object obj)
Compares the specified object with this item type for equality.int
getBaseType()
Returns the base type of the item.int
getItemKind()
Returns the kind of the item.int
getItemOccurrence()
Returns the occurrence indicator for the item type.XQItemType
getItemType()
Returns the type of the item in the sequence type.javax.xml.namespace.QName
getNodeName()
Returns the name of the node in case the item kind is anXQITEMKIND_DOCUMENT_ELEMENT
,XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT
,XQITEMKIND_ELEMENT
,XQITEMKIND_SCHEMA_ELEMENT
,XQITEMKIND_ATTRIBUTE
, orXQITEMKIND_SCHEMA_ATTRIBUTE
.java.lang.String
getPIName()
Returns the name of the processing instruction type.java.net.URI
getSchemaURI()
Returns the schema location URI of the schema that contains the item's element or type definition.javax.xml.namespace.QName
getTypeName()
Represents a type name (global or local).int
hashCode()
Returns a hash code consistent with the definition of the equals method.boolean
isAnonymousType()
Represents whether the item type is an anonymous type in the schema.boolean
isElementNillable()
Returns whether the element type is nillable or not.java.lang.String
toString()
Returns a human-readable implementation-defined string representation of the item type.
-
-
-
Constructor Detail
-
SaxonXQItemType
protected SaxonXQItemType(ItemType itemType, Configuration config)
-
SaxonXQItemType
protected SaxonXQItemType(NodeInfo node)
-
-
Method Detail
-
getBaseType
public int getBaseType() throws XQException
Description copied from interface:XQItemType
Returns the base type of the item. One of theXQBASETYPE_*
constants.
XQJ defines a constant for each of the built-in schema types defined in XML Schema. For atomic types this is the closest matching built-in XML Schema type, for element and attributes the closest matching built-in XML Schema type this node is based on.- Specified by:
getBaseType
in interfaceXQItemType
- Returns:
- int one of the
XQBASETYPE_*
constants indicating the basic type of the item - Throws:
XQException
- if the item kind is not one of:XQITEMKIND_DOCUMENT_ELEMENT
,XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT
,XQITEMKIND_ELEMENT
,XQITEMKIND_SCHEMA_ELEMENT
,XQITEMKIND_ATTRIBUTE
,XQITEMKIND_SCHEMA_ATTRIBUTE
, orXQITEMKIND_ATOMIC
-
getItemKind
public int getItemKind()
Description copied from interface:XQItemType
Returns the kind of the item. One of theXQITEMKIND_*
constants.- Specified by:
getItemKind
in interfaceXQItemType
- Returns:
- int one of the
XQITEMKIND_*
constants indicating the basic kind of the item
-
getItemOccurrence
public int getItemOccurrence()
Description copied from interface:XQItemType
Returns the occurrence indicator for the item type. This method will always return the valueXQSequenceType.OCC_EXACTLY_ONE
.- Specified by:
getItemOccurrence
in interfaceXQItemType
- Specified by:
getItemOccurrence
in interfaceXQSequenceType
- Returns:
- int indicating the occurrence indicator
-
getNodeName
public javax.xml.namespace.QName getNodeName() throws XQException
Description copied from interface:XQItemType
Returns the name of the node in case the item kind is anXQITEMKIND_DOCUMENT_ELEMENT
,XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT
,XQITEMKIND_ELEMENT
,XQITEMKIND_SCHEMA_ELEMENT
,XQITEMKIND_ATTRIBUTE
, orXQITEMKIND_SCHEMA_ATTRIBUTE
. For example, in the case of a type forelement "foo"
this will return theQName foo
. For wildcard entries anull
value will be returned.- Specified by:
getNodeName
in interfaceXQItemType
- Returns:
QName
for the name of the element, attribute, or document element node.null
if it is a wildcard- Throws:
XQException
- if the item kind is not one of:XQITEMKIND_DOCUMENT_ELEMENT
,XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT
,XQITEMKIND_ELEMENT
,XQITEMKIND_SCHEMA_ELEMENT
,XQITEMKIND_ATTRIBUTE
, orXQITEMKIND_SCHEMA_ATTRIBUTE
-
getPIName
public java.lang.String getPIName() throws XQException
Description copied from interface:XQItemType
Returns the name of the processing instruction type. As such the item kind of thisXQItemType
must beXQITEMKIND_PI
.- Specified by:
getPIName
in interfaceXQItemType
- Returns:
- the name of the processing instruction type.
null
if it is a wildcard - Throws:
XQException
- if the item kind is notXQITEMKIND_PI
-
getSchemaURI
public java.net.URI getSchemaURI()
Description copied from interface:XQItemType
Returns the schema location URI of the schema that contains the item's element or type definition. This method is implementation-definied and an implementation will return anull
value if it does not support retrieving the schema location URI. If the item corresponds to a validated global element in a schema, the result will be the schema location URI to the XMLSchema containing the element definition. Otherwise if the item is a schema validated node, the result will be the schema location URI of the XMLSchema containing the type definition of that node. If the item is not schema validated, the result isnull
- Specified by:
getSchemaURI
in interfaceXQItemType
- Returns:
URI
representing the schema location URI of the XMLSchema containing the global element definition or the type definition of the current item.null
in case the item is not schema validated or if the implementation does not support retrieving the schema URI.
-
toString
public java.lang.String toString()
Description copied from interface:XQItemType
Returns a human-readable implementation-defined string representation of the item type.- Specified by:
toString
in interfaceXQItemType
- Specified by:
toString
in interfaceXQSequenceType
- Overrides:
toString
in classjava.lang.Object
- Returns:
- String a string representation of the item type
-
getTypeName
public javax.xml.namespace.QName getTypeName() throws XQException
Description copied from interface:XQItemType
Represents a type name (global or local). This can be used to represent specific type name such as, element foo of type hatsize. The schema type name is represented as a singleQName
. If the return type is an anonymous type, the actualQName
value returned is implementation defined.- Specified by:
getTypeName
in interfaceXQItemType
- Returns:
- the
QName
of the schema type in case of a user defined or anonoymous types. For a built-in type, returns a predefined type name as QName (e.g.xs:anyType
,xs:decimal
, etc). Cannot benull
- Throws:
XQException
- if the item kind is not one of:XQITEMKIND_DOCUMENT_ELEMENT
,XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT
,XQITEMKIND_ATOMIC
,XQITEMKIND_ELEMENT
,XQITEMKIND_SCHEMA_ELEMENT
,XQITEMKIND_ATTRIBUTE
, orXQITEMKIND_SCHEMA_ATTRIBUTE
-
isAnonymousType
public boolean isAnonymousType()
Description copied from interface:XQItemType
Represents whether the item type is an anonymous type in the schema.- Specified by:
isAnonymousType
in interfaceXQItemType
- Returns:
true
if the item type is an anonymous type in the schema,false
otherwise
-
isElementNillable
public boolean isElementNillable()
Description copied from interface:XQItemType
Returns whether the element type is nillable or not.- Specified by:
isElementNillable
in interfaceXQItemType
- Returns:
true
if the element type is nillable,false
otherwise
-
getItemType
public XQItemType getItemType()
Description copied from interface:XQSequenceType
Returns the type of the item in the sequence type.- Specified by:
getItemType
in interfaceXQSequenceType
- Returns:
XQItemType
representing the item type in the sequence.null
is returned in case of an empty sequence.
-
equals
public boolean equals(java.lang.Object obj)
Description copied from interface:XQItemType
Compares the specified object with this item type for equality. The result istrue
only if the argument is an item type object which represents the same XQuery item type.
In order to comply with the general contract ofequals
andhashCode
across different implementations the following algorithm must be used. Returntrue
if and only if both objects areXQItemType
and:getItemKind()
is equal- if
getBaseType()
is supported for the item kind, it must be equal - if
getNodeName()
is supported for the item kind, it must be equal getSchemaURI()
is equal- if
getTypeName()
is supported for the item kind, it must be equal isAnonymousType()
is equalisElementNillable()
is equal- if
getPIName()
is supported for the item kind, it must be equal
- Specified by:
equals
in interfaceXQItemType
- Specified by:
equals
in interfaceXQSequenceType
- Overrides:
equals
in classjava.lang.Object
- Parameters:
obj
- anXQItemType
object representing an XQuery item type- Returns:
true
if the input item type object represents the same XQuery item type,false
otherwise
-
hashCode
public int hashCode()
Description copied from interface:XQItemType
Returns a hash code consistent with the definition of the equals method.
In order to comply with the general contract ofequals
andhashCode
across different implementations the following algorithm must be used:hashCode = this.getItemKind(); if this.getSchemaURI != null hashCode = 31*hashCode + this.getSchemaURI().hashCode(); if this.getBaseType() is supported for the item kind hashCode = 31*hashCode + this.getbaseType(); if this.getNodeName () is supported for the item kind and this.getNodeName() != null hashCode = 31*hashCode + this.getNodeName().hashCode() if this.getTypeName () is supported for the item kind hashCode = 31*hashCode + this.getTypeName().hashCode(); if this.getPIName () is supported for the item kind and this.getPIName () != null hashCode = 31*hashCode + this.getPIName().hashCode();
- Specified by:
hashCode
in interfaceXQItemType
- Specified by:
hashCode
in interfaceXQSequenceType
- Overrides:
hashCode
in classjava.lang.Object
- Returns:
- hash code for this item type
-
-