Interface TopiaEntityEnum

All Superinterfaces:
java.io.Serializable

public interface TopiaEntityEnum
extends java.io.Serializable
The contract to be realised by the generated enumeration in any DAOHelper. Example : for a model Test, we will have a TestDOAHelper.TestEntityEnum enumeration generated. The contract gives some informations about the classes for any entity dealed by the dao helper. More precisely : - contract class of the entity (this must be an interface class) - the implementation fqn class of an entity (at generation time, we might not have the implementation class) - the implementation class (will be looked up at runtime execution, in that way we make possible to used a different implementation at runtime. - a method to accept any TopiaEntity class for this entity description
Since:
2.2.0
Version:
$Id$
Author:
tchemit <chemit@codelutin.com>
  • Method Details

    • name

      java.lang.String name()
      This is a convinient method, as entity enum offers this method from Enum.name().
      Returns:
      the name of the underlying entity type.
      Since:
      2.6.12
    • dbSchemaName

      java.lang.String dbSchemaName()
      Returns:
      the name of database schema (null if none was filled).
      Since:
      2.9.2
    • dbTableName

      java.lang.String dbTableName()
      Returns:
      the name of database table
      Since:
      2.9.2
    • getContract

      java.lang.Class<? extends TopiaEntity> getContract()
      Returns:
      the contract class of the entity
    • getImplementation

      java.lang.Class<? extends TopiaEntity> getImplementation()
      Note : this is a lazy accessor.
      Returns:
      the implementation class of the entity
    • getImplementationFQN

      java.lang.String getImplementationFQN()
      Returns:
      the fully qualifed name of the implementation class of the entity
    • getNaturalIds

      java.lang.String[] getNaturalIds()
      Returns:
      the array of property names involved in the natural key of the entity.
    • getNotNulls

      java.lang.String[] getNotNulls()
      Returns:
      the array of property names which are marked as not-null.
      Since:
      2.6.9
    • isUseNaturalIds

      boolean isUseNaturalIds()
      Returns:
      true if entity use natural ids, false otherwise.
      Since:
      2.6.9
    • isUseNotNulls

      boolean isUseNotNulls()
      Returns:
      true if entity use some not-null properties, false otherwise.
      Since:
      2.6.9
    • setImplementationFQN

      void setImplementationFQN​(java.lang.String implementationFQN)
      Change the implementation class of the entity. Note : this method should reset all states of the objet (implementation class, operators,...).
      Parameters:
      implementationFQN - the new fully qualifed name of the new implementation class of the entity.
    • accept

      boolean accept​(java.lang.Class<? extends TopiaEntity> klass)
      Test if a given type of entity is matching the contract of this entity. Note : make sure to accept type only on the given contract class of this entity, can not accept an ancestor type, since there is a specific contract for this. Example : A -> B
       EntityEnum.A.accept(Class<A>) -> true
       EntityEnum.A.accept(Class<B>) -> false
       EntityEnum.B.accept(Class<B>) -> true
       EntityEnum.B.accept(Class<A>) -> false
       
      Parameters:
      klass - the type of an entity to test.
      Returns:
      true if given type is dealed directly by this entity, false otherwise.