Package org.nuiton.topia.persistence
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 Summary
Modifier and Type Method Description booleanaccept(java.lang.Class<? extends TopiaEntity> klass)Test if a given type of entity is matching the contract of this entity.java.lang.StringdbSchemaName()java.lang.StringdbTableName()java.lang.Class<? extends TopiaEntity>getContract()java.lang.Class<? extends TopiaEntity>getImplementation()Note : this is a lazy accessor.java.lang.StringgetImplementationFQN()java.lang.String[]getNaturalIds()java.lang.String[]getNotNulls()booleanisUseNaturalIds()booleanisUseNotNulls()java.lang.Stringname()This is a convinient method, as entity enum offers this method fromEnum.name().voidsetImplementationFQN(java.lang.String implementationFQN)Change the implementation class of the entity.
-
Method Details
-
name
java.lang.String name()This is a convinient method, as entity enum offers this method fromEnum.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:
trueif entity use natural ids,falseotherwise.- Since:
- 2.6.9
-
isUseNotNulls
boolean isUseNotNulls()- Returns:
trueif entity use some not-null properties,falseotherwise.- 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
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 -> BEntityEnum.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:
trueif given type is dealed directly by this entity,falseotherwise.
-