Package org.apache.sis.feature.builder
Class TypeBuilder
- Object
-
- TypeBuilder
-
- All Implemented Interfaces:
Localized
- Direct Known Subclasses:
CharacteristicTypeBuilder
,FeatureTypeBuilder
,PropertyTypeBuilder
public abstract class TypeBuilder extends Object implements Localized
Information common to all kind of types (feature, association, characteristics). Those information are:- the name — a unique name which can be defined within a scope (or namespace).
- the definition — a concise definition of the element.
- the designation — a natural language designator for the element for user interfaces.
- the description — information beyond that required for concise definition of the element.
LocalName
,ScopedName
,String
orInternationalString
instance. All other properties are optional.Default namespaceIn many cases, the names of allAttributeType
s andAssociationRole
s to create within aFeatureType
share the same namespace. For making name creations more convenient, the namespace can be specified once and applied automatically to all names created by thesetName(CharSequence)
method. Note that namespaces will not be visible in the name string representation unless the fully qualified name is requested. Example:FeatureTypeBuilder builder = new FeatureTypeBuilder().setNameSpace("MyNameSpace").setName("City"); FeatureType city = builder.build(); System.out.println(city.getName()); // Prints "City" System.out.println(city.getName().toFullyQualifiedName()); // Prints "MyNameSpace:City"
- Since:
- 0.8
Defined in the
sis-feature
module
-
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract AbstractIdentifiedType
build()
Builds the feature or property type from the information specified to this builder.CharSequence
getDefinition()
Returns a concise definition of the element.CharSequence
getDescription()
Returns optional information beyond that required for concise definition of the element.CharSequence
getDesignation()
Returns a natural language designator for the element.Locale
getLocale()
Returns the locale used for formatting error messages, ornull
if unspecified.GenericName
getName()
Returns the name of theIdentifiedType
to create, ornull
if undefined.boolean
isDeprecated()
Returnstrue
if the type is deprecated.TypeBuilder
setDefinition(CharSequence definition)
Sets a concise definition of the element.TypeBuilder
setDeprecated(boolean deprecated)
Sets whether the type is deprecated.TypeBuilder
setDescription(CharSequence description)
Sets optional information beyond that required for concise definition of the element.TypeBuilder
setDesignation(CharSequence designation)
Sets a natural language designator for the element.TypeBuilder
setName(CharSequence localPart)
Sets theIdentifiedType
name as a simple string (local name).TypeBuilder
setName(CharSequence... components)
Sets theIdentifiedType
name as a string in the given scope.TypeBuilder
setName(GenericName name)
Sets theIdentifiedType
name as a generic name.String
toString()
Returns a string representation of this object.
-
-
-
Method Detail
-
getName
public GenericName getName()
Returns the name of theIdentifiedType
to create, ornull
if undefined. This method returns the value built from the last call to asetName(…)
method, or a default name ornull
if no name has been explicitly specified.- Returns:
- the name of the
IdentifiedType
to create (may be a default name ornull
). - See Also:
setName(GenericName)
,AbstractIdentifiedType.getName()
,FeatureTypeBuilder.getNameSpace()
-
setName
public TypeBuilder setName(GenericName name)
Sets theIdentifiedType
name as a generic name. If another name was defined before this method call, that previous value will be discarded.Note for subclasses: allsetName(…)
convenience methods in this builder delegate to this method. Consequently this method can be used as a central place where to control the creation of all names.- Parameters:
name
- the generic name (can not benull
).- Returns:
this
for allowing method calls chaining.- See Also:
getName()
,setName(CharSequence)
,AbstractIdentifiedType.NAME_KEY
-
setName
public TypeBuilder setName(CharSequence localPart)
Sets theIdentifiedType
name as a simple string (local name). The namespace will be the value specified by the last call toFeatureTypeBuilder.setNameSpace(CharSequence)
, but that namespace will not be visible in the string representation unless the fully qualified name is requested.This convenience method creates a
LocalName
instance from the givenCharSequence
, then delegates tosetName(GenericName)
.- Parameters:
localPart
- the local part of the generic name as aString
orInternationalString
.- Returns:
this
for allowing method calls chaining.- See Also:
getName()
,setName(CharSequence...)
,FeatureTypeBuilder.getNameSpace()
-
setName
public TypeBuilder setName(CharSequence... components)
Sets theIdentifiedType
name as a string in the given scope. Thecomponents
array must contain at least one element. The last component (the tip) will be sufficient in many cases for calls to theAbstractFeature.getProperty(String)
method. The other elements before the last one are optional and can be used for resolving ambiguity. They will be visible as the name path.Example: a call toIn addition to the path specified by thesetName("A", "B", "C")
will create a "A:B:C" name. A property built with this name can be obtained from a feature by a call tofeature.getProperty("C")
if there is no ambiguity, or otherwise by a call tofeature.getProperty("B:C")
(if non-ambiguous) orfeature.getProperty("A:B:C")
.components
array, the name may also contain a namespace specified by the last call toFeatureTypeBuilder.setNameSpace(CharSequence)
. But contrarily to the specified components, the namespace will not be visible in the name string representation unless the fully qualified name is requested.This convenience method creates a
LocalName
orScopedName
instance depending on whether thenames
array contains exactly 1 element or more than 1 element, then delegates tosetName(GenericName)
.- Parameters:
components
- the name components as an array ofString
orInternationalString
instances.- Returns:
this
for allowing method calls chaining.- See Also:
getName()
,setName(CharSequence)
,FeatureTypeBuilder.getNameSpace()
-
getDefinition
public CharSequence getDefinition()
Returns a concise definition of the element.- Returns:
- concise definition of the element, or
null
if none. - See Also:
AbstractIdentifiedType.getDefinition()
-
setDefinition
public TypeBuilder setDefinition(CharSequence definition)
Sets a concise definition of the element.- Parameters:
definition
- a concise definition of the element, ornull
if none.- Returns:
this
for allowing method calls chaining.- See Also:
getDefinition()
,AbstractIdentifiedType.DEFINITION_KEY
-
getDesignation
public CharSequence getDesignation()
Returns a natural language designator for the element. This can be used as an alternative to the name in user interfaces.- Returns:
- natural language designator for the element, or
null
if none. - See Also:
AbstractIdentifiedType.getDesignation()
-
setDesignation
public TypeBuilder setDesignation(CharSequence designation)
Sets a natural language designator for the element. This can be used as an alternative to the name in user interfaces.- Parameters:
designation
- a natural language designator for the element, ornull
if none.- Returns:
this
for allowing method calls chaining.- See Also:
getDesignation()
,AbstractIdentifiedType.DESIGNATION_KEY
-
getDescription
public CharSequence getDescription()
Returns optional information beyond that required for concise definition of the element. The description may assist in understanding the element scope and application.- Returns:
- information beyond that required for concise definition of the element, or
null
if none. - See Also:
AbstractIdentifiedType.getDescription()
-
setDescription
public TypeBuilder setDescription(CharSequence description)
Sets optional information beyond that required for concise definition of the element. The description may assist in understanding the feature scope and application. If the type is deprecated, then the description should give indication about the replacement (e.g. "superceded by …").- Parameters:
description
- information beyond that required for concise definition of the element, ornull
if none.- Returns:
this
for allowing method calls chaining.- See Also:
getDescription()
,AbstractIdentifiedType.DESCRIPTION_KEY
-
isDeprecated
public boolean isDeprecated()
Returnstrue
if the type is deprecated. If this method returnstrue
, then the description should give indication about the replacement (e.g. "superceded by …").- Returns:
- whether this type is deprecated.
- See Also:
AbstractIdentifiedType.isDeprecated()
-
setDeprecated
public TypeBuilder setDeprecated(boolean deprecated)
Sets whether the type is deprecated. If the type is deprecated, then the description should be set to an indication about the replacement (e.g. "superceded by …").- Parameters:
deprecated
- whether this type is deprecated.- Returns:
this
for allowing method calls chaining.- See Also:
isDeprecated()
,AbstractIdentifiedType.DEPRECATED_KEY
-
getLocale
public Locale getLocale()
Returns the locale used for formatting error messages, ornull
if unspecified. If unspecified, the system default locale will be used.- Specified by:
getLocale
in interfaceLocalized
- Returns:
- the locale used for formatting error messages, or
null
if unspecified.
-
toString
public String toString()
Returns a string representation of this object. The returned string is for debugging purpose only and may change in any future SIS version.
-
build
public abstract AbstractIdentifiedType build() throws IllegalStateException
Builds the feature or property type from the information specified to this builder. If a type has already been built and this builder state has not changed since the type creation, then the previously createdIdentifiedType
instance is returned.Warning: In a future SIS version, the return type may be changed to theorg.opengis.feature.IdentifiedType
interface. This change is pending GeoAPI revision.- Returns:
- the feature or property type.
- Throws:
IllegalStateException
- if the builder contains inconsistent information.
-
-