@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–2019 Geotools. All rights reserved.