- All Superinterfaces:
Type
RecordType
defines dynamically
constructed data type. This interface has methods for data access, but no methods to dynamically
add members. This approach ensures that once a RecordType
is constructed, it is immutable.
A RecordType
is identified by a TypeName
. It contains
an arbitrary amount of member types. A RecordType
may
therefore contain another RecordType
as a member.
This class can be think as the equivalent of the Java Class
class.
- Since:
- 2.1
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionReturns the schema that contains this record type.Returns the set of member names defined in thisRecordType
's dictionary.Returns the dictionary of all (name, type) pairs in this record type.Returns the name that identifies this record type.boolean
isInstance
(Record record) Determines if the specified record is compatible with this record type.locate
(MemberName name) Looks up the provided attribute name and returns the associated type name.
-
Method Details
-
getTypeName
Returns the name that identifies this record type. If thisRecordType
is contained in a record schema, then the record type name shall be a valid in the name space of the record schema:
This method can be think as the equivalent of the JavagetContainer().getSchemaName().scope()
Class.getName()
method.- Specified by:
getTypeName
in interfaceType
- Returns:
- The name that identifies this record type.
-
getContainer
RecordSchema getContainer()Returns the schema that contains this record type.- Returns:
- The schema that contains this record type.
- Departure from OGC/ISO abstract specification:
Addition of element not in the ISO/OGC specification
This is theTypeList
association in figure 15 of ISO 19103:2005, but navigable in the opposite way. The navigation in the ISO way is represented by theRecordSchema.getDescription().values()
.
-
getMemberTypes
@UML(identifier="memberTypes", obligation=MANDATORY, specification=ISO_19103) Map<MemberName,Type> getMemberTypes()Returns the dictionary of all (name, type) pairs in this record type. If there are no attributes, this method returns the empty map. The dictionary shall be unmodifiable.The name space associated with a
RecordType
contains only members of thisRecordType
. There is no potential for conflict with sub-packages.This method can be think as the equivalent of the Java
Class.getFields()
method.- Returns:
- The dictionary of all (name, type) pairs in this record type.
- See Also:
-
getMembers
Set<MemberName> getMembers()Returns the set of member names defined in thisRecordType
's dictionary. If there are no members, this method returns the empty set. This method is functionally equivalent togetMemberTypes().keySet()
.The name space associated with a
RecordType
contains only members of thisRecordType
. There is no potential for conflict with sub-packages.This method can be think as the equivalent of the Java
Class.getFields()
method.- Returns:
- The set of attribute names defined in this
RecordType
's dictionary. - Departure from OGC/ISO abstract specification:
Extension for convenience without introduction of new functionality
This method provides no additional information compared to the ISO standard methods, but is declared in GeoAPI as a convenient shortcut.
-
locate
@UML(identifier="locate", obligation=MANDATORY, specification=ISO_19103) TypeName locate(MemberName name) Looks up the provided attribute name and returns the associated type name. If the attribute name is not defined in this record type, then this method returnsnull
. This method is functionally equivalent togetMemberTypes().get(name).getTypeName()
.This method can be think as the equivalent of the Java
Class.getField(String)
method.- Parameters:
name
- The name of the attribute we are looking for.- Returns:
- The type of of attribute of the given name, or
null
. - See Also:
-
isInstance
Determines if the specified record is compatible with this record type. This method returnstrue
if the specifiedrecord
argument is non-null and the following condition holds:getMembers().containsAll(record.getAttributes().keySet())
- Any other implementation-specific conditions.
This method can be think as the equivalent of the Java
Class.isInstance(Object)
method.- Parameters:
record
- The record to test for compatibility.- Returns:
true
if the given record is compatible with this record type.- Departure from OGC/ISO abstract specification:
Extension for convenience without introduction of new functionality
This method provides no additional information compared to the ISO standard methods, but is declared in GeoAPI as a convenient shortcut.
-