Interface ModelElement

All Superinterfaces:
Element, Serializable
All Known Subinterfaces:
ConsistsOf<S,T>, Encrypted, Entity, ERElement, Event, Facet, IsRelatedTo<S,T>, Property, QueryTemplateReference, Relation<S,T>, Resource
All Known Implementing Classes:
ConsistsOfImpl, DummyFacet, DummyIsRelatedTo, DummyResource, EncryptedImpl, EntityImpl, EventImpl, FacetImpl, IsRelatedToImpl, LinkedEntityImpl, MetadataImpl, PropagationConstraintImpl, PropertyElementImpl, PropertyImpl, QueryTemplateReferenceImpl, RelationImpl, ResourceImpl, TemplateVariableImpl, TypeProjectionImpl

public interface ModelElement extends Element
A base interface for elements that are part of the core Information System model.

This interface provides support for type hierarchies by including properties for supertypes and the expected type during deserialization.

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

    • SUPERTYPES_PROPERTY

      static final String SUPERTYPES_PROPERTY
      The property name for the list of supertypes of the element.

      The name is written supertypes, not superTypes: "supertype" is a single English word, like "subtype", not a compound of two words as expectedType or extendedTypes are, so the lowerCamelCase convention gives it no inner capital.

      See Also:
    • EXPECTED_TYPE_PROPERTY

      static final String EXPECTED_TYPE_PROPERTY
      The property name used by the deserializer to indicate the originally expected type when a more generic supertype had to be used for deserialization.
      See Also:
  • Method Details

    • getSupertypes

      List<String> getSupertypes()
      Returns the list of supertypes for this element, serialized as SUPERTYPES_PROPERTY, which explains the spelling of the name.

      This list is included in JSON serialization only if it is not empty.

      Returns:
      A List of supertype names.
    • getExpectedType

      String getExpectedType()
      Returns the name of the expected type.

      This is used during deserialization to indicate the original type when a fallback to a supertype was necessary. It is included in JSON serialization only if it is not empty.

      Returns:
      The expected type name.