Class FingerprintedQName

java.lang.Object
net.sf.saxon.om.FingerprintedQName
All Implemented Interfaces:
IdentityComparable, NodeName

public class FingerprintedQName extends Object implements 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 Details

  • Method Details

    • fromClarkName

      public static FingerprintedQName fromClarkName(String expandedName)
      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

      public static FingerprintedQName fromEQName(String expandedName)
      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 interface NodeName
      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 interface NodeName
      Returns:
      the fingerprint if known; otherwise -1
    • obtainFingerprint

      public int obtainFingerprint(NamePool pool)
      Get the fingerprint of this name, allocating a new code from the namepool if necessary
      Specified by:
      obtainFingerprint in interface NodeName
      Parameters:
      pool - the NamePool used to allocate the name
      Returns:
      a fingerprint for this name, newly allocated if necessary
    • getDisplayName

      public String getDisplayName()
      Get the display name, that is the lexical QName in the form [prefix:]local-part
      Specified by:
      getDisplayName in interface NodeName
      Returns:
      the lexical QName
    • getPrefix

      public String getPrefix()
      Get the prefix of the QName.
      Specified by:
      getPrefix in interface NodeName
      Returns:
      the prefix. Returns the empty string if the name is unprefixed.
    • getNamespaceUri

      public NamespaceUri getNamespaceUri()
      Get the namespace URI of the QName.
      Specified by:
      getNamespaceUri in interface NodeName
      Returns:
      the URI. Returns the empty string to represent the no-namespace
    • getLocalPart

      public String getLocalPart()
      Get the local part of the QName
      Specified by:
      getLocalPart in interface NodeName
      Returns:
      the local part of the QName
    • getStructuredQName

      public StructuredQName getStructuredQName()
      Get the name in the form of a StructuredQName
      Specified by:
      getStructuredQName in interface NodeName
      Returns:
      the name in the form of a StructuredQName
    • hasURI

      public boolean hasURI(NamespaceUri ns)
      Test whether this name is in a given namespace
      Specified by:
      hasURI in interface NodeName
      Parameters:
      ns - the namespace to be tested against
      Returns:
      true if the name is in the specified namespace
    • getNamespaceBinding

      public NamespaceBinding getNamespaceBinding()
      Get a NamespaceBinding whose (prefix, uri) pair are the prefix and URI of this node name
      Specified by:
      getNamespaceBinding in interface NodeName
      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 interface IdentityComparable
      Returns:
      a hashCode suitable for use when testing for identity.
    • equals

      public boolean equals(Object other)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Returns a hash code value for the object.
      Overrides:
      hashCode in class Object
    • isIdentical

      public boolean isIdentical(IdentityComparable other)
      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 interface IdentityComparable
      Parameters:
      other - the value to be compared with
      Returns:
      true if the two values are identical, false otherwise
    • toString

      public String toString()
      Overrides:
      toString in class Object