@UML(identifier="GenericName", specification=ISO_19103) public interface GenericName extends Comparable<GenericName>
Name
from the Java Naming
and Directory Interface. All generic names:
Names are immutables. They may be fully qualified
like "org.opengis.util.Record"
, or they may be relative to a scope
like "util.Record"
in the "org.opengis"
scope. The illustration below shows all
possible constructions for "org.opengis.util.Record"
. They are all instances of
ScopedName
except the last one which is a LocalName
.
org . opengis . util . Record scope()
getParsedNames()
head tail global { "org"
,"opengis"
,"util"
,"Record"
}path tip org . opengis . util . Record scope head tail "org"
{ "opengis"
,"util"
,"Record"
}path tip org . opengis . util . Record scope head tail "org.opengis"
{ "util"
,"Record"
}path tip org . opengis . util . Record scope head "org.opengis.util"
{ "Record"
}tip
The natural ordering for generic names is implementation dependent. A recommended practice is to compare lexicographically each element in the list of parsed names. Specific attributes of the name, such as how it treats case, may affect the ordering. In general, two names of different classes may not be compared.
Name
Modifier and Type | Method and Description |
---|---|
int |
depth()
Indicates the number of levels specified by this name.
|
List<? extends LocalName> |
getParsedNames()
Returns the sequence of local names making this generic name.
|
LocalName |
head()
Returns the first element in the sequence of parsed names.
|
ScopedName |
push(GenericName scope)
Returns this name expanded with the specified scope.
|
NameSpace |
scope()
Returns the scope (name space) in which this name is local.
|
LocalName |
tip()
Returns the last element in the sequence of parsed names.
|
GenericName |
toFullyQualifiedName()
Returns a view of this name as a fully-qualified name.
|
InternationalString |
toInternationalString()
Returns a local-dependent string representation of this generic name.
|
String |
toString()
Returns a string representation of this generic name.
|
compareTo
@UML(identifier="scope", obligation=MANDATORY, specification=ISO_19103) NameSpace scope()
Example:
For a fully qualified name (a name having a
global namespace) "org.opengis.util.Record"
,
if this instance is the name "util.Record"
, then the scope of this instance
has the name "org.opengis"
.
@UML(identifier="depth", obligation=MANDATORY, specification=ISO_19103) int depth()
getParsedNames()
method. As such it is a derived parameter. For
any LocalName
, it is always one. For a ScopedName
it is some number greater than or
equal to 2.
This method is similar in purpose to Name
from the Java Naming and Directory Interface.
Example:
If this
name is "org.opengis.util.Record"
, then this method shall returns
4
. If this name is "util.Record"
in scope "org.opengis"
, then this
method shall returns 2
.
@UML(identifier="parsedName", obligation=MANDATORY, specification=ISO_19103) List<? extends LocalName> getParsedNames()
This method is similar in purpose to Name
from the Java Naming and Directory Interface.
Example:
If this
name is "org.opengis.util.Record"
, then this method shall returns a
list containing {"org", "opengis", "util", "Record"}
elements in that iteration order.
If this name is "util.Record"
in scope "org.opengis"
, then this method shall
returns a list containing only {"util", "Record"}
elements.
@UML(identifier="ScopedName.head", obligation=MANDATORY, specification=ISO_19103) LocalName head()
LocalName
, this is always this
.
This method is similar in purpose to Name.get(0)
from the Java Naming and Directory Interface.
Example:
If this
name is "org.opengis.util.Record"
(no matter its
scope), then this method shall returns "org"
.
Departure from OGC/ISO specification:
ISO defines this method inScopedName
only. GeoAPI defines it in the base class sinceLocalName
can return a sensible value for it. This reduces the need for casts.
LocalName tip()
LocalName
, this is always this
.
This method is similar in purpose to Name.get(size-1)
from the Java Naming and Directory Interface.
Example:
If this
name is "org.opengis.util.Record"
(no matter its
scope), then this method shall returns "Record"
.
Departure from OGC/ISO specification:
This method is not part of ISO specification. It does not provide any additional information compared to that accessible though the standard methods defined by ISO, but provides easier to access frequently requested information.
GenericName toFullyQualifiedName()
this
.
Example:
If this
name is "util.Record"
(depth of two) and its
scope has the name "org.opengis"
,
then the fully qualified name shall be "org.opengis.util.Record"
.
null
).Departure from OGC/ISO specification:
This method is not part of ISO specification. It does not provide any additional information compared to that accessible though the standard methods defined by ISO, but provides easier to access frequently requested information.
@UML(identifier="push", obligation=MANDATORY, specification=ISO_19103) ScopedName push(GenericName scope)
scope
with this
. In pseudo-code,
the following relationships must hold (the last one is specific to ScopedName
):
push(
foo : LocalName).head()
equals foopush(
foo : LocalName).tail()
equals thispush(
foo : GenericName).scope()
equals foo.scope()
push(
foo : GenericName).getParsedNames()
equals foo.getParsedNames().addAll(
this.getParsedNames())
This method is similar in purpose to Name.addAll(0,name)
from the Java Naming and Directory Interface.
Example:
If this
name is "util.Record"
and the given scope
argument is
"org.opengis"
, then this.push(scope)
shall returns
"org.opengis.util.Record"
.
scope
- The name to use as prefix.String toString()
getParsedNames()
separated
by a namespace-dependent character (usually :
or /
). This rule implies
that the result may or may not be fully qualified. Special cases:
toFullyQualifiedName().toString()
is guaranteed to
contains the scope (if any).tip().toString()
is guaranteed to not
contains any scope.toString
in class Object
Departure from OGC/ISO specification:
This method is not part of ISO specification. It does not provide any additional information compared to that accessible though the standard methods defined by ISO, but provides easier to access frequently requested information.
InternationalString toInternationalString()
toString()
except that each element has
been localized in the specified locale. If no international string is available, then this method shall
returns an implementation mapping to toString()
for all locales.
Example:
An implementation may want to localize the "My Documents"
directory name
into "Mes Documents"
on French installation of Windows operating system.
Departure from OGC/ISO specification:
This method is not part of the ISO specification. It has been added to provide a way to localize the name.
Copyright © 1994–2019 Open Geospatial Consortium. All rights reserved.