/*
* reserved comment block
* DO NOT REMOVE OR ALTER!
*/
/*
* Copyright 1999-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*
* $Id: QName.java,v 1.2.4.1 2005/09/15 08:15:52 suresh_emailid Exp $
*/
/**
* Class to represent a qualified name: "The name of an internal XSLT object,
* specifically a named template (see [7 Named Templates]), a mode (see [6.7 Modes]),
* an attribute set (see [8.1.4 Named Attribute Sets]), a key (see [14.2 Keys]),
* a locale (see [14.3 Number Formatting]), a variable or a parameter (see
* [12 Variables and Parameters]) is specified as a QName. If it has a prefix,
* then the prefix is expanded into a URI reference using the namespace declarations
* in effect on the attribute in which the name occurs. The expanded name
* consisting of the local part of the name and the possibly null URI reference
* is used as the name of the object. The default namespace is not used for
* unprefixed names."
* @xsl.usage general
*/
{
/**
* The local name.
* @serial
*/
/**
* The namespace URI.
* @serial
*/
/**
* The namespace prefix.
* @serial
*/
/**
* The XML namespace.
*/
/**
* The cached hashcode, which is calculated at construction time.
* @serial
*/
private int m_hashCode;
/**
* Constructs an empty QName.
* 20001019: Try making this public, to support Serializable? -- JKESS
*/
public QName(){}
/**
* Constructs a new QName with the specified namespace URI and
* local name.
*
* @param namespaceURI The namespace URI if known, or null
* @param localName The local name
*/
{
this(namespaceURI, localName, false);
}
/**
* Constructs a new QName with the specified namespace URI and
* local name.
*
* @param namespaceURI The namespace URI if known, or null
* @param localName The local name
* @param validate If true the new QName will be validated and an IllegalArgumentException will
* be thrown if it is invalid.
*/
{
// This check was already here. So, for now, I will not add it to the validation
// that is done when the validate parameter is true.
if (validate)
{
{
}
}
}
/**
* Constructs a new QName with the specified namespace URI, prefix
* and local name.
*
* @param namespaceURI The namespace URI if known, or null
* @param prefix The namespace prefix is known, or null
* @param localName The local name
*
*/
{
}
/**
* Constructs a new QName with the specified namespace URI, prefix
* and local name.
*
* @param namespaceURI The namespace URI if known, or null
* @param prefix The namespace prefix is known, or null
* @param localName The local name
* @param validate If true the new QName will be validated and an IllegalArgumentException will
* be thrown if it is invalid.
*/
{
// This check was already here. So, for now, I will not add it to the validation
// that is done when the validate parameter is true.
if (validate)
{
{
}
{
}
}
}
/**
* Construct a QName from a string, without namespace resolution. Good
* for a few odd cases.
*
* @param localName Local part of qualified name
*
*/
{
this(localName, false);
}
/**
* Construct a QName from a string, without namespace resolution. Good
* for a few odd cases.
*
* @param localName Local part of qualified name
* @param validate If true the new QName will be validated and an IllegalArgumentException will
* be thrown if it is invalid.
*/
{
// This check was already here. So, for now, I will not add it to the validation
// that is done when the validate parameter is true.
if (validate)
{
{
}
}
}
/**
* Construct a QName from a string, resolving the prefix
* using the given namespace stack. The default namespace is
* not resolved.
*
* @param qname Qualified name to resolve
* @param namespaces Namespace stack to use to resolve namespace
*/
{
this(qname, namespaces, false);
}
/**
* Construct a QName from a string, resolving the prefix
* using the given namespace stack. The default namespace is
* not resolved.
*
* @param qname Qualified name to resolve
* @param namespaces Namespace stack to use to resolve namespace
* @param validate If true the new QName will be validated and an IllegalArgumentException will
* be thrown if it is invalid.
*/
{
if (indexOfNSSep > 0)
{
{
}
// Do we want this?
{
return;
}
else
{
{
{
{
i = -1;
break;
}
}
}
}
{
throw new RuntimeException(
}
}
if (validate)
{
{
}
}
}
/**
* Construct a QName from a string, resolving the prefix
* using the given namespace context and prefix resolver.
* The default namespace is not resolved.
*
* @param qname Qualified name to resolve
* @param namespaceContext Namespace Context to use
* @param resolver Prefix resolver for this context
*/
{
}
/**
* Construct a QName from a string, resolving the prefix
* using the given namespace context and prefix resolver.
* The default namespace is not resolved.
*
* @param qname Qualified name to resolve
* @param namespaceContext Namespace Context to use
* @param resolver Prefix resolver for this context
* @param validate If true the new QName will be validated and an IllegalArgumentException will
* be thrown if it is invalid.
*/
{
if (indexOfNSSep > 0)
{
if (null != namespaceContext)
{
{
}
// Do we want this?
{
return;
}
else
{
}
if (null == _namespaceURI)
{
throw new RuntimeException(
}
}
else
{
// TODO: error or warning...
}
}
if (validate)
{
{
}
}
}
/**
* Construct a QName from a string, resolving the prefix
* using the given namespace stack. The default namespace is
* not resolved.
*
* @param qname Qualified name to resolve
* @param resolver Prefix resolver for this context
*/
{
}
/**
* Construct a QName from a string, resolving the prefix
* using the given namespace stack. The default namespace is
* not resolved.
*
* @param qname Qualified name to resolve
* @param resolver Prefix resolver for this context
* @param validate If true the new QName will be validated and an IllegalArgumentException will
* be thrown if it is invalid.
*/
{
if (indexOfNSSep > 0)
{
{
}
else
{
}
if (null == _namespaceURI)
{
throw new RuntimeException(
}
}
else if (indexOfNSSep == 0)
{
throw new RuntimeException(
null));
}
else
{
_localName = qname;
}
if (validate)
{
{
}
}
}
/**
* Returns the namespace URI. Returns null if the namespace URI
* is not known.
*
* @return The namespace URI, or null
*/
{
return _namespaceURI;
}
/**
* Returns the namespace prefix. Returns null if the namespace
* prefix is not known.
*
* @return The namespace prefix, or null
*/
{
return _prefix;
}
/**
* Returns the local part of the qualified name.
*
* @return The local part of the qualified name
*/
{
return _localName;
}
/**
* Return the string representation of the qualified name, using the
* prefix if available, or the '{ns}foo' notation if not. Performs
* string concatenation, so beware of performance issues.
*
* @return the string representation of the namespace
*/
{
: (_namespaceURI != null
}
/**
* Return the string representation of the qualified name using the
* the '{ns}foo' notation. Performs
* string concatenation, so beware of performance issues.
*
* @return the string representation of the namespace
*/
{
return (_namespaceURI != null
}
/**
* Get the namespace of the qualified name.
*
* @return the namespace URI of the qualified name
*/
{
return getNamespaceURI();
}
/**
* Get the local part of the qualified name.
*
* @return the local part of the qualified name
*/
{
return getLocalName();
}
/**
* Return the cached hashcode of the qualified name.
*
* @return the cached hashcode of the qualified name
*/
public int hashCode()
{
return m_hashCode;
}
/**
* Override equals and agree that we're equal if
* the passed object is a string and it matches
* the name of the arg.
*
* @param ns Namespace URI to compare to
* @param localPart Local part of qualified name to compare to
*
* @return True if the local name and uri match
*/
{
}
/**
* Override equals and agree that we're equal if
* the passed object is a QName and it matches
* the name of the arg.
*
* @return True if the qualified names are equal
*/
{
if (object == this)
return true;
}
else
return false;
}
/**
* Given a string, create and return a QName object
*
*
* @param name String to use to create QName
*
* @return a QName object
*/
{
else
return qname;
}
/**
* This function tells if a raw attribute name is a
* xmlns attribute.
*
* @param attRawName Raw name of attribute
*
* @return True if the attribute starts with or is equal to xmlns
*/
{
}
/**
* This function tells if a raw attribute name is a
* xmlns attribute.
*
* @param attRawName Raw name of attribute
*
* @return Prefix of attribute
*/
{
}
/**
* Returns the local name of the given node.
*
* @param qname Input name
*
* @return Local part of the name if prefixed, or the given name if not
*/
{
}
/**
* Returns the local name of the given node.
*
* @param qname Input name
*
* @return Prefix of name or empty string if none there
*/
{
}
}