@UML(identifier="RecordType", specification=ISO_19103) public 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.
Record,
RecordSchema| Modifier and Type | Method and Description |
|---|---|
Map<MemberName,TypeName> |
getAttributeTypes()
Returns the dictionary of all (name, type) pairs in this record type.
|
RecordSchema |
getContainer()
Returns the schema that contains this record type.
|
Set<MemberName> |
getMembers()
Returns the set of attribute names defined in this
RecordType's dictionary. |
TypeName |
getTypeName()
Returns the name that identifies this record type.
|
boolean |
isInstance(Record record)
Determines if the specified record is compatible with this record type.
|
TypeName |
locate(MemberName name)
Looks up the provided attribute name and returns the associated type name.
|
@UML(identifier="typeName", obligation=MANDATORY, specification=ISO_19103) TypeName getTypeName()
RecordType 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()
This method can be think as the equivalent of the Java Class.getName() method.@UML(identifier="container", obligation=OPTIONAL, specification=ISO_19103) RecordSchema getContainer()
@UML(identifier="attributeTypes", obligation=MANDATORY, specification=ISO_19103) Map<MemberName,TypeName> getAttributeTypes()
Record.getAttributes()@Extension Set<MemberName> getMembers()
RecordType's dictionary. If there
are no attributes, this method returns the empty set. This method is functionally equivalent
to getAttributeTypes().keySet().
The name space associated with a RecordType contains only
members of this RecordType. There is no potential for conflict with subpackages.
This method can be think as the equivalent of the Java Class.getFields() method.
@UML(identifier="locate", obligation=MANDATORY, specification=ISO_19103) TypeName locate(MemberName name)
null. This method
is functionnaly equivalent to
getAttributeTypes().get(name).
This method can be think as the equivalent of the Java Class.getField(String)
method.
@Extension boolean isInstance(Record record)
true if the specified record argument is non-null and the following condition
holds:
getMembers().containsAll(record.getAttributes().keySet())
This method can be think as the equivalent of the Java Class.isInstance(Object)
method.
Copyright © 1996–2021 Geotools. All rights reserved.