Object
TypeBuilder
- All Implemented Interfaces:
Localized
- Direct Known Subclasses:
CharacteristicTypeBuilder,FeatureTypeBuilder,PropertyTypeBuilder
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 or InternationalString instance.
All other properties are optional.
Default namespace
In many cases, the names of allAttributeTypes and AssociationRoles to create
within a FeatureType share the same namespace.
For making name creations more convenient, the namespace can be
specified once and applied automatically
to all names created by the setName(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
-
Method Summary
Modifier and TypeMethodDescriptionabstract AbstractIdentifiedTypebuild()Builds the feature or property type from the information specified to this builder.Returns a concise definition of the element.Returns optional information beyond that required for concise definition of the element.Returns a natural language designator for the element.Returns the locale used for formatting error messages, ornullif unspecified.getName()Returns the name of theIdentifiedTypeto create, ornullif undefined.booleanReturnstrueif the type is deprecated.setDefinition(CharSequence definition) Sets a concise definition of the element.setDeprecated(boolean deprecated) Sets whether the type is deprecated.setDescription(CharSequence description) Sets optional information beyond that required for concise definition of the element.setDesignation(CharSequence designation) Sets a natural language designator for the element.setName(CharSequence localPart) Sets theIdentifiedTypename as a simple string (local name).setName(CharSequence... components) Sets theIdentifiedTypename as a string in the given scope.setName(GenericName name) Sets theIdentifiedTypename as a generic name.Returns a string representation of this object.
-
Method Details
-
getName
Returns the name of theIdentifiedTypeto create, ornullif undefined. This method returns the value built from the last call to asetName(…)method, or a default name ornullif no name has been explicitly specified.- Returns:
- the name of the
IdentifiedTypeto create (may be a default name ornull). - See Also:
-
setName
Sets theIdentifiedTypename 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 (cannot benull).- Returns:
thisfor allowing method calls chaining.- See Also:
-
setName
Sets theIdentifiedTypename 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
LocalNameinstance from the givenCharSequence, then delegates tosetName(GenericName).- Parameters:
localPart- the local part of the generic name as aStringorInternationalString.- Returns:
thisfor allowing method calls chaining.- See Also:
-
setName
Sets theIdentifiedTypename as a string in the given scope. Thecomponentsarray 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").componentsarray, 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
LocalNameorScopedNameinstance depending on whether thenamesarray contains exactly 1 element or more than 1 element, then delegates tosetName(GenericName).- Parameters:
components- the name components as an array ofStringorInternationalStringinstances.- Returns:
thisfor allowing method calls chaining.- See Also:
-
getDefinition
Returns a concise definition of the element.- Returns:
- concise definition of the element, or
nullif none. - See Also:
-
setDefinition
Sets a concise definition of the element.- Parameters:
definition- a concise definition of the element, ornullif none.- Returns:
thisfor allowing method calls chaining.- See Also:
-
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
nullif none. - See Also:
-
setDesignation
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, ornullif none.- Returns:
thisfor allowing method calls chaining.- See Also:
-
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
nullif none. - See Also:
-
setDescription
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, ornullif none.- Returns:
thisfor allowing method calls chaining.- See Also:
-
isDeprecated
public boolean isDeprecated()Returnstrueif 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:
-
setDeprecated
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:
thisfor allowing method calls chaining.- See Also:
-
getLocale
Returns the locale used for formatting error messages, ornullif unspecified. If unspecified, the system default locale will be used.- Specified by:
getLocalein interfaceLocalized- Returns:
- the locale used for formatting error messages, or
nullif unspecified.
-
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
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 createdIdentifiedTypeinstance is returned.Warning: In a future SIS version, the return type may be changed to theorg.opengis.feature.IdentifiedTypeinterface. This change is pending GeoAPI revision.- Returns:
- the feature or property type.
- Throws:
IllegalStateException- if the builder contains inconsistent information.
-