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

  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 Details

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

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