Package net.sf.saxon.om
Class FingerprintedQName
java.lang.Object
net.sf.saxon.om.FingerprintedQName
- All Implemented Interfaces:
IdentityComparable
,NodeName
A QName triple (prefix, URI, local) with the additional ability to hold an integer fingerprint.
The integer fingerprint provides a fast way of checking equality. A FingerprintedQName makes sense
only in the context of a known NamePool, and instances must be compared only if they relate to the
same NamePool. The fingerprint is optional, and is used only if present.
-
Constructor Summary
ConstructorsConstructorDescriptionFingerprintedQName
(String prefix, NamespaceUri uri, String localName) FingerprintedQName
(String prefix, NamespaceUri uri, String localName, int fingerprint) FingerprintedQName
(String prefix, NamespaceUri uri, String localName, NamePool pool) FingerprintedQName
(StructuredQName qName, int fingerprint) FingerprintedQName
(StructuredQName qName, NamePool pool) -
Method Summary
Modifier and TypeMethodDescriptionboolean
static FingerprintedQName
fromClarkName
(String expandedName) Make a FingerprintedQName from a Clark namestatic FingerprintedQName
fromEQName
(String expandedName) Make a FingerprintedQName from a Clark nameGet the display name, that is the lexical QName in the form [prefix:]local-partint
Get the fingerprint of this name if known.Get the local part of the QNameGet aNamespaceBinding
whose (prefix, uri) pair are the prefix and URI of this node nameGet the namespace URI of the QName.Get the prefix of the QName.Get the name in the form of a StructuredQNameboolean
Ask whether this node name representation has a known namecode and fingerprintint
hashCode()
Returns a hash code value for the object.boolean
hasURI
(NamespaceUri ns) Test whether this name is in a given namespaceint
Get a hashCode that offers the guarantee that if A.isIdentical(B), then A.identityHashCode() == B.identityHashCode()boolean
isIdentical
(IdentityComparable other) Determine whether two IdentityComparable objects are identical.int
obtainFingerprint
(NamePool pool) Get the fingerprint of this name, allocating a new code from the namepool if necessarytoString()
-
Constructor Details
-
FingerprintedQName
-
FingerprintedQName
-
FingerprintedQName
-
FingerprintedQName
-
FingerprintedQName
-
FingerprintedQName
-
-
Method Details
-
fromClarkName
Make a FingerprintedQName from a Clark name- Parameters:
expandedName
- the name in Clark notation "{uri}local" if in a namespace, or "local" otherwise. The format "{}local" is also accepted for a name in no namespace.- Returns:
- the constructed FingerprintedQName
- Throws:
IllegalArgumentException
- if the Clark name is malformed
-
fromEQName
Make a FingerprintedQName from a Clark name- Parameters:
expandedName
- the name in EQName notation "Q{uri}local" if in a namespace, or "local" otherwise. The format "Q{}local" is also accepted for a name in no namespace.- Returns:
- the constructed FingerprintedQName
- Throws:
IllegalArgumentException
- if the EQName name is malformed
-
hasFingerprint
public boolean hasFingerprint()Ask whether this node name representation has a known namecode and fingerprint- Specified by:
hasFingerprint
in interfaceNodeName
- Returns:
- true if the methods getFingerprint() and getNameCode() will return a result other than -1
-
getFingerprint
public int getFingerprint()Get the fingerprint of this name if known. This method should not to any work to allocate a fingerprint if none is already available- Specified by:
getFingerprint
in interfaceNodeName
- Returns:
- the fingerprint if known; otherwise -1
-
obtainFingerprint
Get the fingerprint of this name, allocating a new code from the namepool if necessary- Specified by:
obtainFingerprint
in interfaceNodeName
- Parameters:
pool
- the NamePool used to allocate the name- Returns:
- a fingerprint for this name, newly allocated if necessary
-
getDisplayName
Get the display name, that is the lexical QName in the form [prefix:]local-part- Specified by:
getDisplayName
in interfaceNodeName
- Returns:
- the lexical QName
-
getPrefix
Get the prefix of the QName. -
getNamespaceUri
Get the namespace URI of the QName.- Specified by:
getNamespaceUri
in interfaceNodeName
- Returns:
- the URI. Returns the empty string to represent the no-namespace
-
getLocalPart
Get the local part of the QName- Specified by:
getLocalPart
in interfaceNodeName
- Returns:
- the local part of the QName
-
getStructuredQName
Get the name in the form of a StructuredQName- Specified by:
getStructuredQName
in interfaceNodeName
- Returns:
- the name in the form of a StructuredQName
-
hasURI
Test whether this name is in a given namespace -
getNamespaceBinding
Get aNamespaceBinding
whose (prefix, uri) pair are the prefix and URI of this node name- Specified by:
getNamespaceBinding
in interfaceNodeName
- Returns:
- the corresponding NamespaceBinding
-
identityHashCode
public int identityHashCode()Get a hashCode that offers the guarantee that if A.isIdentical(B), then A.identityHashCode() == B.identityHashCode()- Specified by:
identityHashCode
in interfaceIdentityComparable
- Returns:
- a hashCode suitable for use when testing for identity.
-
equals
-
hashCode
public int hashCode()Returns a hash code value for the object. -
isIdentical
Determine whether two IdentityComparable objects are identical. This is a stronger test than equality (even schema-equality); for example two dateTime values are not identical unless they are in the same timezone.- Specified by:
isIdentical
in interfaceIdentityComparable
- Parameters:
other
- the value to be compared with- Returns:
- true if the two values are identical, false otherwise
-
toString
-