Class DefaultScopedName

java.lang.Object
org.apache.sis.util.iso.AbstractName
org.apache.sis.util.iso.DefaultScopedName
All Implemented Interfaces:
Serializable, Comparable<org.opengis.util.GenericName>, org.opengis.util.GenericName, org.opengis.util.ScopedName

public class DefaultScopedName extends AbstractName implements org.opengis.util.ScopedName
A composite of a name space (as a local name) and a generic name valid in that name space. See the GeoAPI javadoc for more information.

DefaultScopedName can be instantiated by any of the following methods:

Immutability and thread safety

This class is immutable and thus inherently thread-safe if the NameSpace and all CharSequence elements in the 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 LocalName state.
Since:
0.3
Version:
0.8
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Serial number for inter-operability with different versions.
      See Also:
    • parsedNames

      private final UnmodifiableArrayList<? extends org.opengis.util.LocalName> parsedNames
      The immutable list of parsed names.
    • tail

      private transient org.opengis.util.GenericName tail
      The tail or path, computed when first needed.
    • path

      private transient org.opengis.util.GenericName path
      The tail or path, computed when first needed.
  • Constructor Details

    • DefaultScopedName

      private DefaultScopedName(UnmodifiableArrayList<? extends org.opengis.util.LocalName> names)
      Creates a new scoped names from the given list of local names. This constructor is not public because it does not check if the given local names have the proper scope.
      Parameters:
      names - the names to gives to the new scoped name.
    • DefaultScopedName

      protected DefaultScopedName(org.opengis.util.NameSpace scope, List<? extends CharSequence> names)
      Constructs a scoped name from the specified list of strings. If any of the given names is an instance of InternationalString, then its toString(Locale.ROOT) method will be invoked for fetching an unlocalized name. Otherwise the CharSequence.toString() method will be used.
      Parameters:
      scope - the scope of this name, or null for the global scope.
      names - the local names. This list must have at least two elements.
    • DefaultScopedName

      protected DefaultScopedName(org.opengis.util.GenericName path, org.opengis.util.GenericName tail)
      Constructs a scoped name as the concatenation of the given generic names. The scope of the new name will be the scope of the path argument.
      Parameters:
      path - the first part to concatenate.
      tail - the second part to concatenate.
    • DefaultScopedName

      protected DefaultScopedName(org.opengis.util.GenericName path, String separator, CharSequence tail)
      Constructs a scoped name as the concatenation of the given generic name with a single character sequence. The scope of the new name will be the scope of the path argument. The tail is a local name created from the given character sequence.
      Parameters:
      path - the first part to concatenate.
      separator - the separator between the head and the tail, or null for inheriting the same separator than the given path.
      tail - the second part to concatenate.
      Since:
      0.8
      See Also:
  • Method Details

    • create

      static AbstractName create(UnmodifiableArrayList<? extends DefaultLocalName> names)
      Creates a new scoped names from the given list of local names. This constructor is not public because we do not check if the given local names have the proper scope.
      Parameters:
      names - the names to gives to the new scoped name.
    • name

      private static CharSequence name(org.opengis.util.GenericName name)
      Returns the name to be given to DefaultLocalName constructors.
    • arraySize

      final int arraySize()
      Returns the size of the backing array. This is used only has a hint for optimizations in attempts to share internal arrays.
      Overrides:
      arraySize in class AbstractName
    • scope

      public org.opengis.util.NameSpace scope()
      Returns the scope (name space) in which this name is local. For example if a fully qualified name is "org.opengis.util.Record" and if this instance is the "util.Record" part, then its scope is named "org.opengis".

      Continuing with the above example, the full "org.opengis.util.Record" name has no scope. If this method is invoked on such name, then the SIS implementation returns a global scope instance (i.e. an instance for which DefaultNameSpace.isGlobal() returns true) which is unique and named "global".

      Specified by:
      scope in interface org.opengis.util.GenericName
      Specified by:
      scope in class AbstractName
      Returns:
      the scope of this name.
    • tail

      public org.opengis.util.GenericName tail()
      Returns every elements in the sequence of parsed names except for the head.
      Specified by:
      tail in interface org.opengis.util.ScopedName
      Returns:
      all elements except the first one in the in the list of parsed names.
    • path

      public org.opengis.util.GenericName path()
      Returns every element in the sequence of parsed names except for the tip.
      Specified by:
      path in interface org.opengis.util.ScopedName
      Returns:
      all elements except the last one in the in the list of parsed names.
    • getParsedNames

      public List<? extends org.opengis.util.LocalName> getParsedNames()
      Returns the sequence of local name for this generic name.
      Specified by:
      getParsedNames in interface org.opengis.util.GenericName
      Specified by:
      getParsedNames in class AbstractName
      Returns:
      the local names making this generic name, without the scope. Shall never be null neither empty.