All Superinterfaces:
Element, EntityElement, IdentifiableElement, Serializable, Type
All Known Subinterfaces:
FacetSchema, ResourceSchema
All Known Implementing Classes:
EntitySchemaImpl, FacetSchemaImpl, ResourceSchemaImpl

@TypeMetadata(name="EntitySchema", description="The base type for all entity type definitions in the Information System model, specializing Type for the entity-type family (FacetSchema and ResourceSchema).", version="1.0.0") @Change(version="1.0.0", description="First Version") public interface EntitySchema extends Type, EntityElement
The base interface for all entity type definitions.
Author:
Luca Frosini (ISTI - CNR)
  • Field Details

  • Method Details

    • getName

      @ISProperty(name="name", readonly=true, mandatory=true) String getName()
      Returns the name of the type.
      Specified by:
      getName in interface Type
      Returns:
      The type name.
    • getDescription

      @ISProperty(name="description", readonly=false, mandatory=true) String getDescription()
      Returns the description of the type.
      Specified by:
      getDescription in interface Type
      Returns:
      The type description.
    • isAbstract

      @ISProperty(name="abstract", mandatory=true) boolean isAbstract()
      Checks if the type is abstract.
      Specified by:
      isAbstract in interface Type
      Returns:
      true if the type is abstract, false otherwise.
    • getExtendedTypes

      @ISProperty(name="extendedTypes", readonly=true, mandatory=true) List<String> getExtendedTypes()
      Returns the types that this type extends.

      A List because the order carries meaning: it is the declaration order of the direct parents -- the local precedence order C3 linearization requires -- and it must survive serialization and persistence unchanged. A Set would map to an unordered store and lose it.

      Specified by:
      getExtendedTypes in interface Type
      Returns:
      The parent type names, in declaration order.