Package groovy.namespace

## Class QName

- java.lang.Object
- - groovy.namespace.QName

- All Implemented Interfaces:
    `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.

  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor | 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.

  - ### Method Summary

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

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### QName

          public QName​(String localPart)

      Constructor for the QName.
      Parameters:
        `localPart` - Local part of the QName

    - #### QName

          public QName​(String namespaceURI,
                       String localPart)

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

    - #### 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

    - #### getNamespaceURI

          public String getNamespaceURI()

      Gets the Namespace URI for this QName
      Returns:
        Namespace URI

    - #### getLocalPart

          public String getLocalPart()

      Gets the Local part for this QName
      Returns:
        Local part

    - #### getPrefix

          public String getPrefix()

      Gets the Prefix for this QName
      Returns:
        Prefix

    - #### getQualifiedName

          public String getQualifiedName()

      Returns the fully qualified name of this QName
      Returns:
        a string representation of the QName

    - #### toString

          public String toString()

      Returns a string representation of this QName
      Overrides:
        `toString` in class `Object`
      Returns:
        a string representation of the QName

    - #### equals

          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.

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

    - #### matches

          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.

    - #### valueOf

          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.

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

    - #### hashCode

          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.
      Overrides:
        `hashCode` in class `Object`
      Returns:
        a hash code value for this Qname object