Interface Entity

All Superinterfaces:
ModelElement
All Known Implementing Classes:
EntityImpl

public interface Entity extends ModelElement
The entity.

This is the top-level model element.

Author:
harald
  • Method Details

    • getClassId

      int getClassId()
      Gets the unique id of this entity.
      A sort of class-ID that is used to map from a small number to a class or classname.
      Returns:
      the entity class id
    • getTableName

      String getTableName()
      Gets the database table name.
      An optional schema may be prepended separated by a dot.

      Important: similar to the entity name, the table name must be unique among the whole model and all schemas. This restriction avoids unnecessary confusion and reduces the potential for errors in SQL statements.

      Returns:
      the tablename (always in lowercase), null if entity doesn't map to its own table
    • getSchemaName

      String getSchemaName()
      Gets the schema name.
      Returns:
      the schema (always in lowercase), null if default
    • getTableNameWithoutSchema

      String getTableNameWithoutSchema()
      Gets the tablename without the leading schema.

      Important: similar to the entity name, the table name must be unique among the whole model and all schemas. This restriction avoids unnecessary confusion and reduces the potential for errors in SQL statements.

      Returns:
      the tablename relative to its schema (always in lowercase), null if entity doesn't map to its own table
    • getTableAlias

      String getTableAlias()
      Gets the table alias for joined selects.
      The alias is unique among all tables. If the model does not provide an alias, a unique alias will be generated.
      Returns:
      the table alias
    • getDefinedTableAlias

      String getDefinedTableAlias()
      Gets the table alias originally configured in the model.
      Returns:
      the fixed alias, null if automatic
    • getIntegrity

      Integrity getIntegrity()
      Gets the referential integrity mode.
      Returns:
      the integrity mode
    • getOptions

      EntityOptions getOptions()
      Gets the options.
      Returns:
      the options
    • getAttributes

      List<Attribute> getAttributes()
      Gets the attributes.
      Returns:
      the attributes
    • getInheritedAttributes

      List<Attribute> getInheritedAttributes()
      Gets the inherited attributes.
      Returns:
      the attributes
    • getSubEntityAttributes

      List<Attribute> getSubEntityAttributes()
      Gets the attributes from the sub entities.
      Returns:
      the attributes
    • getAttributesIncludingInherited

      List<Attribute> getAttributesIncludingInherited()
      Gets the attributes including the inherited ones.
      Returns:
      the attributes
    • getAttributesIncludingSubEntities

      List<Attribute> getAttributesIncludingSubEntities()
      Gets the attributes including the ones from the sub entities.
      Returns:
      the attributes
    • getAllAttributes

      List<Attribute> getAllAttributes()
      Gets all attributes including inherited and from sub entities.
      Returns:
      the attributes
    • getTableAttributes

      List<Attribute> getTableAttributes()
      Gets the attributes of the table mapped by this entity.
      Returns:
      the attributes, empty if entity does not map to a table or does not provide attributes
    • getMappedAttributes

      List<Attribute> getMappedAttributes()
      Gets the attributes mapped by the persistence layer for this entity.
      Returns:
      the attributes
    • getAttributeByJavaName

      Attribute getAttributeByJavaName(String javaName, boolean all)
      Gets an attribute by its java name.
      Parameters:
      javaName - the java name
      all - true if include inherited attributes
      Returns:
      the attribute, null if no such attribute
    • getAttributeByColumnName

      Attribute getAttributeByColumnName(String columnName, boolean all)
      Gets an attribute by its database column name.

      Notice that upper/lowercase doesnt matter.

      Parameters:
      columnName - the database column name
      all - true if include inherited attributes
      Returns:
      the attribute, null if no such attribute
    • getContextIdAttribute

      Attribute getContextIdAttribute()
      Gets the attribute that holds the context id.
      Returns:
      the context attribute, null if none
    • getUniqueDomainKey

      List<Attribute> getUniqueDomainKey()
      Gets the attributes describing the unique domain key.
      Returns:
      the udk attributes, empty if no udk
    • getSorting

      List<AttributeSorting> getSorting()
      Gets the default sorting for this entity.
      Returns:
      the sorting, null if unsorted by default
    • getRelations

      List<Relation> getRelations()
      Gets the relations.
      Returns:
      the relations
    • getInheritedRelations

      List<Relation> getInheritedRelations()
      Gets the inherited relations.
      Returns:
      the relations
    • getSubEntityRelations

      List<Relation> getSubEntityRelations()
      Gets the relations from the sub entities.
      Returns:
      the relations
    • getRelationsIncludingInherited

      List<Relation> getRelationsIncludingInherited()
      Gets all including inherited relations.
      Returns:
      the relations
    • getRelationsIncludingSubEntities

      List<Relation> getRelationsIncludingSubEntities()
      Gets all relations including the ones from the sub entities.
      Returns:
      the relations
    • getAllRelations

      List<Relation> getAllRelations()
      Gets all relations including the inherited and the ones from the sub entities.
      Returns:
      the relations
    • getTableRelations

      List<Relation> getTableRelations()
      Gets the relations of the table mapped by this entity.
      Returns:
      the relations, empty if entity does not map to a table or provides no relations
    • getRelation

      Relation getRelation(String name, boolean all)
      Gets a relation by its name.
      Parameters:
      name - the relation's name
      all - true if include inherited relations
      Returns:
      the relation, null if no such relation
    • getRelations

      List<Relation> getRelations(Entity entity, boolean all)
      Gets all relations for a given entity type.
      Parameters:
      entity - the entity
      all - true if include inherited relations
      Returns:
      the relations, empty if no such relation
    • getReferencingRelations

      List<Relation> getReferencingRelations()
      Gets the relations from other entities directly referencing this entity.
      Returns:
      the relations
    • getInheritedReferencingRelations

      List<Relation> getInheritedReferencingRelations()
      Gets the relations from other entities referencing any super-entity.
      Returns:
      the relations
    • getSubEntityReferencingRelations

      List<Relation> getSubEntityReferencingRelations()
      Gets the relations from other entities referencing any sub-entity.
      Returns:
      the relations
    • getReferencingRelationsIncludingInherited

      List<Relation> getReferencingRelationsIncludingInherited()
      Gets the relations from other entities referencing this entity or any super-entity.
      Returns:
      the relations
    • getReferencingRelationsIncludingSubEntities

      List<Relation> getReferencingRelationsIncludingSubEntities()
      Gets the relations from other entities referencing this entity or any sub-entity.
      Returns:
      the relations
    • getAllReferencingRelations

      List<Relation> getAllReferencingRelations()
      Gets the relations from other entities referencing this entity or any sub-entity or super entity.
      Returns:
      the relations
    • getIndexes

      List<Index> getIndexes()
      Gets the indexes.
      Returns:
      the indexes
    • getInheritedIndexes

      List<Index> getInheritedIndexes()
      Gets inherited indexes.
      Returns:
      the indexes
    • getSubEntityIndexes

      List<Index> getSubEntityIndexes()
      Gets indexes from sub entities.
      Returns:
      the indexes
    • getIndexesIncludingInherited

      List<Index> getIndexesIncludingInherited()
      Gets all including inherited indexes.
      Returns:
      the indexes
    • getIndexesIncludingSubEntities

      List<Index> getIndexesIncludingSubEntities()
      Gets all including indexes from sub entities.
      Returns:
      the indexes
    • getAllIndexes

      List<Index> getAllIndexes()
      Gets all including inherited and indexes from sub entities.
      Returns:
      the indexes
    • getTableIndexes

      List<Index> getTableIndexes()
      Gets the indexes of the table mapped by this entity.
      Returns:
      the indexes, empty if entity does not map to a table or provides no indexes
    • getIndex

      Index getIndex(String name, boolean all)
      Gets an index by its name.
      Parameters:
      name - the index name
      all - true if include inherited indexes
      Returns:
      the index, null if no such index
    • sqlCreateTable

      String sqlCreateTable(Backend backend) throws ModelException
      Creates the table creation sql code.
      Parameters:
      backend - the backend to create sql code for
      Returns:
      the SQL code
      Throws:
      ModelException - if model inconsistent
    • isComposite

      boolean isComposite()
      Returns whether entity has composite relations.
      Returns:
      true if composite entity
    • isAbstract

      boolean isAbstract()
      Returns whether class may be instantiated.
      Returns:
      true if class is abstract
    • isTracked

      boolean isTracked()
      Returns whether entity is tracked.
      Returns:
      true if tracked
    • isDeletionCascaded

      Boolean isDeletionCascaded()
      Returns the cascade-flag if it is the same for all composite relations.
      If there are no composite relations at all, false is returned.
      Returns:
      the cascade flag, null if mixed composite relations
    • getRootAttributes

      Set<Attribute> getRootAttributes()
      Returns the attributes that corresponds to the root id.
      Returns:
      the attributes, empty list if root id is provided separately or no root id at all
    • getRootAttribute

      Attribute getRootAttribute()
      Returns the single root attribute if there is exactly one.
      Returns:
      the attribute, null if none or more than one
    • getRootEntities

      Set<Entity> getRootEntities()
      Returns the root entities.
      Returns all roots, even abstract ones.
      Returns:
      the root entities, empty list if rootclassid is provided separately or no rootclassid at all
    • getRootEntity

      Entity getRootEntity()
      Returns the single root entity if there is exactly one and it is not abstract.
      Returns:
      the root entity, null if none or abstract or more than one
    • isRootEntity

      boolean isRootEntity()
      Returns whether this is a root entity.
      Inspects the super entities as well.
      Returns:
      true if root entity
    • isRootOfInheritanceHierarchy

      boolean isRootOfInheritanceHierarchy()
      Returns whether entity is the root of an inheritance hierarchy.
      Returns:
      true if root
    • getTableProvidingEntity

      Entity getTableProvidingEntity()
      Gets the entity that provides the database table.
      Returns:
      the table providing entity, null if entity is abstract and does not correspond to a single table
    • getInheritanceType

      InheritanceType getInheritanceType()
      Gets the inheritance type.
      Returns:
      the inheritance type
    • getHierarchyInheritanceType

      InheritanceType getHierarchyInheritanceType()
      Gets the inheritance type of the hierarchy.
      For leafs, which have InheritanceType.NONE, the type of the super entity is returned.
      Returns:
      the effective inheritance type
    • getSuperEntityName

      String getSuperEntityName()
      Gets the name of the super class entity.
      Returns:
      the super class name, null if not inherited
    • getSuperEntity

      Entity getSuperEntity()
      Gets the super class entity if inherited.
      Returns:
      the super entity, null if not inherited
    • getSuperEntities

      List<Entity> getSuperEntities()
      Gets all super entities.
      Returns:
      the path along up to the top super entity.
    • getTopSuperEntity

      Entity getTopSuperEntity()
      Gets the top most entity of the inheritance tree.
      Returns this entity if there is no inheritance.
      Returns:
      the root of the inheritance hierarchy
    • getInheritanceChain

      List<Entity> getInheritanceChain(Entity subEntity) throws ModelException
      Gets the inheritance chain from this entity down to given sub entity.
      Parameters:
      subEntity - the sub entity
      Returns:
      the chain starting with this entity end ending with the sub entity
      Throws:
      ModelException - if subEntity does not inherit this entity
    • getSubEntities

      List<Entity> getSubEntities()
      Gets the direct sub entities.
      Returns:
      the sub entities, empty list if no sub entities
    • getAllSubEntities

      List<Entity> getAllSubEntities()
      Gets all sub entities.
      Returns:
      the sub entities, empty list if no sub entities
    • getLeafEntities

      List<Entity> getLeafEntities()
      Gets the list of non-abstract leaf sub entities.
      If this entity is already non-abstract the list consists of this entity.
      Returns:
      the leafs
    • getAssociatedEntities

      Set<Entity> getAssociatedEntities()
      Gets a set of all entities that are associated to this entity.
      The kind of association can be a relation, a foreign relation or some hierarchy dependency or a combination of.
      Returns:
      the set of entities including me
    • getCompositePaths

      Set<List<Relation>> getCompositePaths()
      Gets the paths of composite relations to this entity.
      Notice that this inludes paths to sub-entities as well.
      Returns:
      the paths, empty list if this is not a component of any other entity
    • getAllCompositePaths

      Set<List<Relation>> getAllCompositePaths()
      Gets the paths of composite relations to this entity.
      Notice that this inludes paths to sub-entities and super-entities as well.
      Returns:
      the paths, empty list if this is not a component of any other entity
    • getComponents

      Set<Entity> getComponents()
      Gets the direct components of this entity.
      Returns:
      the components
    • getComponentsIncludingInherited

      Set<Entity> getComponentsIncludingInherited()
      Gets the direct and inherited components of this entity.
      Returns:
      the components
    • getAllComponents

      Set<Entity> getAllComponents()
      Gets all direct and indirect components of this entity.
      Returns:
      the components
    • isProvidingRootClassIdAccordingToModel

      boolean isProvidingRootClassIdAccordingToModel()
      Returns whether this entity should provide a root class id according to model.
      Returns:
      true if should provide a root class id
    • isProvidingRootIdAccordingToModel

      boolean isProvidingRootIdAccordingToModel()
      Returns whether this entity should provide a root id according to model.
      Returns:
      true if should provide a root id
    • isRootEntityAccordingToModel

      boolean isRootEntityAccordingToModel()
      Returns whether this entity is a root-entity according to model.
      Returns:
      true if root entity
    • getDeepReferences

      List<Relation> getDeepReferences()
      Gets the deep references to this entity.
      Returns:
      the deep references, empty if no deep references
    • isDeeplyReferenced

      boolean isDeeplyReferenced()
      Returns whether this entity or one of its components is deeply referenced.
      Returns:
      true if deeply referenced, false if not
    • getDeepReferencesToComponents

      List<Relation> getDeepReferencesToComponents()
      Gets the deep references to components of this root entity.
      Will contain all deep references to all components, not only the direct childs.
      Returns:
      the deep references, empty if this is not a root entity or there are no deep references
    • getDeeplyReferencedComponents

      List<Relation> getDeeplyReferencedComponents()
      Gets the deeply referenced components.
      Will contain the relations to components where isDeeplyReferenced() is true.
      Returns:
      the composite relations deeply referenced