All Superinterfaces:
Element, IdentifiableElement, Serializable
All Known Subinterfaces:
ConsistsOfType, EntityType, FacetType, IsRelatedToType, PropertyType, RelationType<S,T>, ResourceType
All Known Implementing Classes:
ConsistsOfTypeImpl, EntityTypeImpl, FacetTypeImpl, IsRelatedToTypeImpl, PropertyTypeImpl, RelationTypeImpl, ResourceTypeImpl, TypeImpl

@TypeMetadata(name="Type", description="This is the base type to define any Type", version="1.0.0") @Change(version="1.0.0", description="First Version") public interface Type extends IdentifiableElement
The base interface for all type definitions in the Information System model.

A type definition describes the structure of an element, including its name, version, properties, and inheritance relationships.

Author:
Luca Frosini (ISTI - CNR)
  • Field Details

  • Method Details

    • getID

      UUID getID()
      Returns the unique identifier (UUID) of the element.
      Specified by:
      getID in interface IdentifiableElement
      Returns:
      The UUID of the element.
    • setID

      void setID(UUID uuid)
      Sets the unique identifier (UUID) for the element.
      Specified by:
      setID in interface IdentifiableElement
      Parameters:
      uuid - The UUID to set.
    • getMetadata

      Metadata getMetadata()
      Returns the metadata associated with the element.

      The metadata is included in JSON serialization only if it is not null.

      Specified by:
      getMetadata in interface IdentifiableElement
      Returns:
      The Metadata of the element, or null if none is set.
    • setMetadata

      void setMetadata(Metadata metadata)
      Sets the metadata for the element.
      Specified by:
      setMetadata in interface IdentifiableElement
      Parameters:
      metadata - The Metadata to associate with the element.
    • getName

      String getName()
      Returns the name of the type.
      Returns:
      The type name.
    • getDescription

      String getDescription()
      Returns the description of the type.
      Returns:
      The type description.
    • getVersion

      Version getVersion()
      Returns the version of the type.
      Returns:
      The type version.
    • getVersionAsString

      String getVersionAsString()
      Returns the version of the type as a string.
      Returns:
      The version string.
    • getChangelog

      Map<Version,String> getChangelog()
      Returns the changelog for this type.
      Returns:
      A map of versions to change descriptions.
    • getChangelogWithVersionAsString

      Map<String,String> getChangelogWithVersionAsString()
      Returns the changelog with versions represented as strings.
      Returns:
      A map of version strings to change descriptions.
    • isAbstract

      boolean isAbstract()
      Checks if the type is abstract.
      Returns:
      true if the type is abstract, false otherwise.
    • isFinal

      boolean isFinal()
      Checks if the type is final.
      Returns:
      true if the type is final, false otherwise.
    • getExtendedTypes

      Set<String> getExtendedTypes()
      Returns the set of types that this type extends.
      Returns:
      A set of parent type names.
    • getProperties

      Set<PropertyDefinition> getProperties()
      Returns the set of properties defined by this type.
      Returns:
      A set of PropertyDefinitions.
    • getAccessType

      AccessType getAccessType()
      Returns the AccessType of this type definition.
      Returns:
      The access type.