Interface RecordType
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 attribute types which are also identified by TypeName
. A
RecordType
may therefore contain another RecordType
as a member. This is a limited association
because a named member may be defined to be a single instance of some externally defined RecordType
. This
does not permit aggregation of any kind.
This class can be think as the equivalent of the Java Class
class.
- Since:
- GeoAPI 2.1
- Author:
- Bryce Nordgren (USDA), Martin Desruisseaux (IRD)
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionReturns the dictionary of all (name, type) pairs in this record type.Returns the schema that contains this record type.Returns the set of attribute names defined in thisRecordType
's dictionary.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
TypeName getTypeName()Returns the name that identifies this record type. If thisRecordType
is contained in a record schema, then the record type name should be a valid in the name space of the record schema:getContainer().getSchemaName().scope()
Class.getName()
method. -
getContainer
RecordSchema getContainer()Returns the schema that contains this record type. -
getAttributeTypes
Map<MemberName,TypeName> getAttributeTypes()Returns the dictionary of all (name, type) pairs in this record type. The dictionary shall be unmodifiable.- See Also:
-
getMembers
Set<MemberName> getMembers()Returns the set of attribute names defined in thisRecordType
's dictionary. If there are no attributes, this method returns the empty set. This method is functionally equivalent togetAttributeTypes().keySet()
.The name space associated with a
RecordType
contains only members of thisRecordType
. There is no potential for conflict with subpackages.This method can be think as the equivalent of the Java
Class.getFields()
method. -
locate
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 functionnaly equivalent togetAttributeTypes().get(name)
.This method can be think as the equivalent of the Java
Class.getField(String)
method. -
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.
-