Package org.alfresco.service.namespace
Class QName
- java.lang.Object
-
- org.alfresco.service.namespace.QName
-
- All Implemented Interfaces:
Serializable,Cloneable,Comparable<QName>,QNamePattern
@AlfrescoPublicApi public final class QName extends Object implements QNamePattern, Serializable, Cloneable, Comparable<QName>
QNamerepresents the qualified name of a Repository item. Each QName consists of a local name qualified by a namespace.The
QNamePatternis implemented to allow instances of this class to be used for direct pattern matching where required on interfaces.- Author:
- David Caruana
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static StringEMPTY_URI_SUBSTITUTEstatic intMAX_LENGTHstatic charNAMESPACE_BEGINstatic charNAMESPACE_ENDstatic charNAMESPACE_PREFIX
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Objectclone()intcompareTo(QName qname)Uses thenamespace URIand then thelocalnameto do the comparison i.e.static QNamecreateQName(String qname)Create a QName from its internal string representation of the following format:{namespaceURI}localNamestatic QNamecreateQName(String namespaceURI, String localName)Create a QName (With no prefix)static QNamecreateQName(String prefix, String localName, NamespacePrefixResolver prefixResolver)Create a QNamestatic QNamecreateQName(String qname, NamespacePrefixResolver prefixResolver)Create a QName (from prefix format)prefix:localNamestatic QNamecreateQNameWithValidLocalName(String namespaceURI, String localName)Create a QName, optionally truncating the localname toMAX_LENGTH.static StringcreateValidLocalName(String name)Create a valid local name from the specified namebooleanequals(Object object)Two QNames are equal only when both their name and namespace match.StringgetLocalName()Gets the nameStringgetNamespaceURI()Gets the namespaceQNamegetPrefixedQName(NamespacePrefixResolver resolver)Gets a prefix resolved version of this QNameStringgetPrefixString()Getter version of toPrefixString()inthashCode()Calculate hashCode.booleanisMatch(QName qname)Performs a direct comparison between qnames.static QNameresolveToQName(NamespacePrefixResolver prefixResolver, String str)Creates a QName representation for the given String.static StringresolveToQNameString(NamespacePrefixResolver prefixResolver, String str)Creates a string representation of a QName for the given string.static String[]splitPrefixedQName(String qname)Create a QNameStringtoPrefixString()Render string representation of QName using format:prefix:nameStringtoPrefixString(NamespacePrefixResolver prefixResolver)Render string representation of QName using format:prefix:nameaccording to namespace prefix mappings of specified namespace resolver.StringtoString()Render string representation of QName using format:{namespace}name
-
-
-
Field Detail
-
EMPTY_URI_SUBSTITUTE
public static final String EMPTY_URI_SUBSTITUTE
- See Also:
- Constant Field Values
-
NAMESPACE_PREFIX
public static final char NAMESPACE_PREFIX
- See Also:
- Constant Field Values
-
NAMESPACE_BEGIN
public static final char NAMESPACE_BEGIN
- See Also:
- Constant Field Values
-
NAMESPACE_END
public static final char NAMESPACE_END
- See Also:
- Constant Field Values
-
MAX_LENGTH
public static final int MAX_LENGTH
- See Also:
- Constant Field Values
-
-
Method Detail
-
createQName
public static QName createQName(String namespaceURI, String localName) throws InvalidQNameException
Create a QName (With no prefix)- Parameters:
namespaceURI- the qualifying namespace (maybe null or empty string)localName- the local name- Returns:
- the QName
- Throws:
InvalidQNameException
-
createQName
public static QName createQName(String prefix, String localName, NamespacePrefixResolver prefixResolver) throws InvalidQNameException, NamespaceException
Create a QName- Parameters:
prefix- namespace prefix (maybe null or empty string)localName- local nameprefixResolver- lookup to resolve mappings between prefix and namespace- Returns:
- the QName
- Throws:
InvalidQNameExceptionNamespaceException
-
createQName
public static QName createQName(String qname, NamespacePrefixResolver prefixResolver) throws InvalidQNameException, NamespaceException
Create a QName (from prefix format)prefix:localName- Parameters:
qname- qualified name of the following formatprefix:localNameprefixResolver- lookup to resolve mappings between prefix and namespace- Returns:
- the QName
- Throws:
InvalidQNameExceptionNamespaceException
-
createQName
public static QName createQName(String qname) throws InvalidQNameException
Create a QName from its internal string representation of the following format:{namespaceURI}localName- Parameters:
qname- the string representation of the QName- Returns:
- the QName
- Throws:
IllegalArgumentExceptionInvalidQNameException
-
createQNameWithValidLocalName
public static QName createQNameWithValidLocalName(String namespaceURI, String localName)
Create a QName, optionally truncating the localname toMAX_LENGTH.- Parameters:
namespaceURI- the qualifying namespace (maybe null or empty string)localName- the local name, which will be truncated, if necessary- Returns:
- the QName with potentially-truncated localname
-
createValidLocalName
public static String createValidLocalName(String name)
Create a valid local name from the specified name- Parameters:
name- name to create valid local name from- Returns:
- valid local name
-
splitPrefixedQName
public static String[] splitPrefixedQName(String qname) throws InvalidQNameException, NamespaceException
Create a QName- Parameters:
qname- qualified name of the following formatprefix:localName- Returns:
- string array where index 0 => prefix and index 1 => local name
- Throws:
InvalidQNameExceptionNamespaceException
-
clone
public Object clone() throws CloneNotSupportedException
- Overrides:
clonein classObject- Throws:
CloneNotSupportedException
-
getLocalName
public String getLocalName()
Gets the name- Returns:
- the name
-
getNamespaceURI
public String getNamespaceURI()
Gets the namespace- Returns:
- the namespace (empty string when not specified, but never null)
-
getPrefixedQName
public QName getPrefixedQName(NamespacePrefixResolver resolver)
Gets a prefix resolved version of this QName- Parameters:
resolver- namespace prefix resolver- Returns:
- QName with prefix resolved
-
equals
public boolean equals(Object object)
Two QNames are equal only when both their name and namespace match. Note: The prefix is ignored during the comparison.
-
isMatch
public boolean isMatch(QName qname)
Performs a direct comparison between qnames.- Specified by:
isMatchin interfaceQNamePattern- Parameters:
qname- the instance to check- Returns:
- Returns true if the qname matches this pattern
- See Also:
equals(Object)
-
hashCode
public int hashCode()
Calculate hashCode. Follows pattern used by String where hashCode is cached (QName is immutable).
-
toString
public String toString()
Render string representation of QName using format:{namespace}name
-
compareTo
public int compareTo(QName qname)
Uses thenamespace URIand then thelocalnameto do the comparison i.e. the comparison is alphabetical.- Specified by:
compareToin interfaceComparable<QName>
-
toPrefixString
public String toPrefixString()
Render string representation of QName using format:prefix:name- Returns:
- the string representation
-
getPrefixString
public String getPrefixString()
Getter version of toPrefixString()- Returns:
- the string representation of QName
-
toPrefixString
public String toPrefixString(NamespacePrefixResolver prefixResolver)
Render string representation of QName using format:prefix:nameaccording to namespace prefix mappings of specified namespace resolver.- Parameters:
prefixResolver- namespace prefix resolver- Returns:
- the string representation
-
resolveToQName
public static QName resolveToQName(NamespacePrefixResolver prefixResolver, String str)
Creates a QName representation for the given String. If the String has no namespace the Alfresco namespace is added. If the String has a prefix an attempt to resolve the prefix to the full URI will be made.- Parameters:
str- The string to convert- Returns:
- A QName representation of the given string
-
resolveToQNameString
public static String resolveToQNameString(NamespacePrefixResolver prefixResolver, String str)
Creates a string representation of a QName for the given string. If the given string already has a namespace, either a URL or a prefix, nothing the given string is returned. If it does not have a namespace the Alfresco namespace is added.- Parameters:
str- The string to convert- Returns:
- A QName String representation of the given string
-
-