Package: groovy.namespace

## [Java] Class QName

- groovy.namespace.QName

- All Implemented Interfaces and Traits:
    Serializable

      public class QName
      extends Object
      implements Serializable

  `QName` class represents the value of a qualified name as specified in XML Schema Part2: Datatypes specification.

  The value of a QName contains a namespaceURI, a localPart and a prefix. The localPart provides the local part of the qualified name. The namespaceURI is a URI reference identifying the namespace.

- - ### Constructor Summary

    Constructors
    Constructor and description
    `QName(String localPart)` Constructor for the QName.
    `QName(String namespaceURI, String localPart)` Constructor for the QName.
    `QName(String namespaceURI, String localPart, String prefix)` Constructor for the QName.

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `public boolean` | `equals(Object o)` Tests this QName for equality with another object.
    `` | `public String` | `getLocalPart()` Gets the Local part for this QName
    `` | `public String` | `getNamespaceURI()` Gets the Namespace URI for this QName
    `` | `public String` | `getPrefix()` Gets the Prefix for this QName
    `` | `public String` | `getQualifiedName()` Returns the fully qualified name of this QName
    `` | `public int` | `hashCode()` Returns a hash code value for this QName object.
    `` | `public boolean` | `matches(Object o)` Tests if this QName matches another object.
    `` | `public String` | `toString()` Returns a string representation of this QName
    `` | `public static QName` | `valueOf(String s)` Returns a QName holding the value of the specified String.

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class Object` | `wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll`

- - ### Constructor Detail

    - #### public QName(String localPart)

      Constructor for the QName.

      Parameters:
        `localPart` - Local part of the QName

    - #### public QName(String namespaceURI, String localPart)

      Constructor for the QName.

      Parameters:
        `namespaceURI` - Namespace URI for the QName
        `localPart` - Local part of the QName.

    - #### public QName(String namespaceURI, String localPart, String prefix)

      Constructor for the QName.

      Parameters:
        `namespaceURI` - Namespace URI for the QName
        `localPart` - Local part of the QName.
        `prefix` - Prefix of the QName.

  - ### Method Detail

    - #### @Override public boolean equals(Object o)

      Tests this QName for equality with another object.

      If the given object is not a QName or String equivalent or is null then this method returns `false`.

      For two QNames to be considered equal requires that both localPart and namespaceURI must be equal. This method uses `String.equals` to check equality of localPart and namespaceURI. Any class that extends QName is required to satisfy this equality contract. If the supplied object is a String, then it is split in two on the last colon and the first half is compared against the prefix || namespaceURI and the second half is compared against the localPart i.e. assert new QName("namespace","localPart").equals("namespace:localPart") Intended Usage: for gpath accessors, e.g. root.'urn:mynamespace:node' Warning: this equivalence is not commutative, i.e. qname.equals(string) may be true/false but string.equals(qname) is always false

      This method satisfies the general contract of the `Object.equals` method.

      Parameters:
        `o` - the reference object with which to compare
      Returns:
        `true` if the given object is identical to this QName: `false` otherwise.

    - #### public String getLocalPart()

      Gets the Local part for this QName

      Returns:
        Local part

    - #### public String getNamespaceURI()

      Gets the Namespace URI for this QName

      Returns:
        Namespace URI

    - #### public String getPrefix()

      Gets the Prefix for this QName

      Returns:
        Prefix

    - #### public String getQualifiedName()

      Returns the fully qualified name of this QName

      Returns:
        a string representation of the QName

    - #### @Override public int hashCode()

      Returns a hash code value for this QName object. The hash code is based on both the localPart and namespaceURI parts of the QName. This method satisfies the general contract of the `Object.hashCode` method.

      Returns:
        a hash code value for this Qname object

    - #### public boolean matches(Object o)

      Tests if this QName matches another object.

      If the given object is not a QName or String equivalent or is null then this method returns `false`.

      For two QNames to be considered matching requires that both localPart and namespaceURI must be equal or one of them is a wildcard. If the supplied object is a String, then it is split in two on the last colon and the first half is matched against the prefix || namespaceURI and the second half is matched against the localPart

      Parameters:
        `o` - the reference object with which to compare
      Returns:
        `true` if the given object matches this QName: `false` otherwise.

    - #### @Override public String toString()

      Returns a string representation of this QName

      Returns:
        a string representation of the QName

    - #### public static QName valueOf(String s)

      Returns a QName holding the value of the specified String.

      The string must be in the form returned by the QName.toString() method, i.e. "{namespaceURI}localPart", with the "{namespaceURI}" part being optional.

      This method doesn't do a full validation of the resulting QName. In particular, it doesn't check that the resulting namespace URI is a legal URI (per RFC 2396 and RFC 2732), nor that the resulting local part is a legal NCName per the XML Namespaces specification.

      throws:
        java.lang.IllegalArgumentException If the specified String cannot be parsed as a QName
      Parameters:
        `s` - the string to be parsed
      Returns:
        QName corresponding to the given String