Package org.apache.sis.util.iso
Class DefaultNameSpace
Object
DefaultNameSpace
- All Implemented Interfaces:
Serializable
,NameSpace
A domain in which names given by character strings are defined.
This implementation does not support localization in order to avoid ambiguity when testing
two namespaces for equality.
DefaultNameSpace
can be instantiated by any of the following methods:
Immutability and thread safety
This class is immutable and thus inherently thread-safe if theNameSpace
and CharSequence
arguments given to the constructor are also immutable. Subclasses shall make sure that any overridden methods
remain safe to call from multiple threads and do not change any public NameSpace
state.- Since:
- 0.3
- See Also:
Defined in the sis-metadata
module
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final char
The default separator, which is':'
. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
DefaultNameSpace
(DefaultNameSpace parent, CharSequence name, String headSeparator, String separator) Creates a new namespace with the given separator. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Returnstrue
if this namespace is equal to the given object.int
Returns a hash code value for this namespace.boolean
Indicates whether this namespace is a "top level" namespace.name()
Represents the identifier of this namespace.Returns a JCR-like lexical form representation of this namespace.
-
Field Details
-
DEFAULT_SEPARATOR
public static final char DEFAULT_SEPARATORThe default separator, which is':'
. The separator is inserted between the namespace and any generic name in that namespace.- See Also:
-
-
Constructor Details
-
DefaultNameSpace
protected DefaultNameSpace(DefaultNameSpace parent, CharSequence name, String headSeparator, String separator) Creates a new namespace with the given separator.- Parameters:
parent
- the parent namespace, ornull
if none.name
- the name of the new namespace, usually as aString
or anInternationalString
.headSeparator
- the separator to insert between the namespace and the head of any name in that namespace.separator
- the separator to insert between the parsed names of any name in that namespace.
-
-
Method Details
-
isGlobal
public boolean isGlobal()Indicates whether this namespace is a "top level" namespace. Global, or top-level namespaces are not contained within another namespace. The global namespace has no parent.- Specified by:
isGlobal
in interfaceNameSpace
- Returns:
true
if this namespace is the global namespace.
-
name
Represents the identifier of this namespace. Namespace identifiers shall be fully-qualified names where the following condition holds:assert name.scope().isGlobal() == true;
- Specified by:
name
in interfaceNameSpace
- Returns:
- the identifier of this namespace.
-
toString
Returns a JCR-like lexical form representation of this namespace. Following the Java Content Repository (JCR) convention, this method returns the string representation of name() between curly brackets.Example: if the name of this namespace is “org.apache.sis
”, then this method returns “{org.apache.sis}
”.Usage
With this convention, it would be possible to create an expanded form of a generic name (except for escaping of illegal characters) with a simple concatenation as in the following code example:
However the convention followed by thisGenericName name = ...; // A name println("Expanded form = " + name.scope() + name);
DefaultNameSpace
implementation is not specified in theNameSpace
contract. This implementation follows the JCR convention for debugging convenience, but applications needing better guarantees should useNames.toExpandedString(GenericName)
instead. -
equals
Returnstrue
if this namespace is equal to the given object. -
hashCode
public int hashCode()Returns a hash code value for this namespace.
-