Interface RecordType

All Superinterfaces:
Type

@UML(identifier="RecordType", specification=ISO_19103) public interface RecordType extends Type
The type definition of a record. A 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 Details

    • getTypeName

      Returns the name that identifies this record type. If this RecordType is contained in a record schema, then the record type name shall 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.
      Specified by:
      getTypeName in interface Type
      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 the TypeList association in figure 15 of ISO 19103:2005, but navigable in the opposite way. The navigation in the ISO way is represented by the RecordSchema.getDescription().values().
    • 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 this RecordType. 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 this RecordType's dictionary. If there are no members, this method returns the empty set. This method is functionally equivalent to getMemberTypes().keySet().

      The name space associated with a RecordType contains only members of this RecordType. 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

      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 returns null. This method is functionally equivalent to getMemberTypes().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

      boolean isInstance(Record record)
      Determines if the specified record is compatible with this record type. This method returns true if the specified record argument is non-null and the following condition holds:

      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.