Class DBMapping
java.lang.Object
org.nuiton.topia.persistence.util.DBMapping
public abstract class DBMapping
extends java.lang.Object
Une classe qui permet d'obtenir les mapping de noms entre les entités et les objets de la base.
On retrouve aussi ici des méthodes utils pour executer du code sql sur la base (notamment la gestion des séquences).
- Author:
- tchemit <chemit@codelutin.com>
-
Field Summary
Fields Modifier and Type Field Description protected static java.lang.StringCLASS_PATTERNprotected static java.lang.StringCREATE_SEQUENCE_FORMATprotected static java.lang.StringCURRENT_VALUE_SEQUENCE_FORMATprotected static java.lang.StringDBNAME_ATTRIBUTE_PATTERNprotected static java.lang.StringDOTprotected static org.apache.commons.logging.Logloglogprotected java.util.Map<java.lang.String,java.lang.String>mappingBeanToDbprotected static java.lang.StringNEXT_VALUE_SEQUENCE_FORMATprotected java.lang.Stringschemaprotected static java.lang.StringSCHEMA_FORMATprotected static java.lang.StringSEQUENCE_ATTRIBUTE_PATTERNprotected java.util.Map<java.lang.String,java.lang.Class<? extends TopiaEntity>>sequencesprotected static java.lang.StringUPDATE_SEQUENCE_FORMAT -
Constructor Summary
Constructors Constructor Description DBMapping(java.lang.String propertyFile, java.lang.String path) -
Method Summary
Modifier and Type Method Description protected java.lang.StringcheckSequence(java.lang.Class<? extends TopiaEntity> entityClass, java.lang.String propertyName)protected java.lang.StringcheckSequence(java.lang.String sequenceKey)voidclose()voidcreateSequence(java.lang.Class<? extends TopiaEntity> entityClass, java.lang.String propertyName, TopiaContext ctxt)voidcreateSequence(java.lang.String sequenceKey, TopiaContext ctxt)voidcreateSequence(java.lang.String sequenceKey, TopiaContext ctxt, boolean check)voidcreateSequences(TopiaContext ctxt)protected voiddoSQLWork(TopiaContext ctxt, java.lang.String sql)booleanexistSequence(java.lang.Class<? extends TopiaEntity> entityClass, java.lang.String propertyName, TopiaContext ctxt)booleanexistSequence(java.lang.String sequenceKey, TopiaContext ctxt)booleanexistSequence(java.lang.String sequenceKey, TopiaContext ctxt, boolean check)protected voidfinalize()protected java.math.BigIntegergetBigInteger(TopiaContext ctxt, java.lang.String sql, java.math.BigInteger defaultSize)protected abstract java.lang.Class<? extends TopiaEntity>getContractClass(java.lang.Class<? extends TopiaEntity> entityClass)java.math.BigIntegergetCurrentValueFromSequence(java.lang.Class<? extends TopiaEntity> entityClass, java.lang.String propertyName, TopiaContext ctxt)java.math.BigIntegergetCurrentValueFromSequence(java.lang.String sequenceKey, TopiaContext ctxt)java.math.BigIntegergetCurrentValueFromSequence(java.lang.String sequenceKey, TopiaContext ctxt, boolean check)protected java.lang.StringgetDBProperty(java.lang.Class<? extends TopiaEntity> entityClass, java.lang.String property)protected java.lang.StringgetDBTable(java.lang.Class<? extends TopiaEntity> entityClass)java.math.BigIntegergetNextValueFromSequence(java.lang.Class<? extends TopiaEntity> entityClass, java.lang.String propertyName, TopiaContext ctxt)java.math.BigIntegergetNextValueFromSequence(java.lang.String sequenceKey, TopiaContext ctxt)java.math.BigIntegergetNextValueFromSequence(java.lang.String sequenceKey, TopiaContext ctxt, boolean check)java.util.Iterator<java.lang.String>getSequenceKeysIterator()protected java.lang.StringgetSequencePropertyName(java.lang.String sequenceKey)protected java.lang.StringgetSequenceSQL(java.lang.String pattern, java.lang.Class<? extends TopiaEntity> entityClass, java.lang.String propertyName)protected java.lang.StringgetSequenceSQL(java.lang.String pattern, java.lang.String sequenceKey)voidinit(TopiaContext ctxt, boolean doCreate, boolean doUpdate)protected voidinitMapping(java.util.Properties props)voidupdateSequence(java.lang.Class<? extends TopiaEntity> entityClass, java.lang.String propertyName, TopiaContext ctxt)voidupdateSequence(java.lang.String sequenceKey, TopiaContext ctxt)voidupdateSequence(java.lang.String sequenceKey, TopiaContext ctxt, boolean check)voidupdateSequences(TopiaContext ctxt)
-
Field Details
-
log
protected static final org.apache.commons.logging.Log loglog -
CLASS_PATTERN
protected static final java.lang.String CLASS_PATTERN- See Also:
- Constant Field Values
-
DBNAME_ATTRIBUTE_PATTERN
protected static final java.lang.String DBNAME_ATTRIBUTE_PATTERN- See Also:
- Constant Field Values
-
SEQUENCE_ATTRIBUTE_PATTERN
protected static final java.lang.String SEQUENCE_ATTRIBUTE_PATTERN- See Also:
- Constant Field Values
-
CREATE_SEQUENCE_FORMAT
protected static final java.lang.String CREATE_SEQUENCE_FORMAT- See Also:
- Constant Field Values
-
UPDATE_SEQUENCE_FORMAT
protected static final java.lang.String UPDATE_SEQUENCE_FORMAT- See Also:
- Constant Field Values
-
CURRENT_VALUE_SEQUENCE_FORMAT
protected static final java.lang.String CURRENT_VALUE_SEQUENCE_FORMAT- See Also:
- Constant Field Values
-
NEXT_VALUE_SEQUENCE_FORMAT
protected static final java.lang.String NEXT_VALUE_SEQUENCE_FORMAT- See Also:
- Constant Field Values
-
SCHEMA_FORMAT
protected static final java.lang.String SCHEMA_FORMAT- See Also:
- Constant Field Values
-
DOT
protected static final java.lang.String DOT- See Also:
- Constant Field Values
-
mappingBeanToDb
protected java.util.Map<java.lang.String,java.lang.String> mappingBeanToDb -
sequences
-
schema
protected java.lang.String schema
-
-
Constructor Details
-
DBMapping
public DBMapping(java.lang.String propertyFile, java.lang.String path) throws java.io.IOException- Throws:
java.io.IOException
-
-
Method Details
-
getContractClass
protected abstract java.lang.Class<? extends TopiaEntity> getContractClass(java.lang.Class<? extends TopiaEntity> entityClass) throws TopiaException- Throws:
TopiaException
-
init
- Throws:
TopiaException
-
createSequences
- Throws:
TopiaException
-
updateSequences
- Throws:
TopiaException
-
existSequence
public boolean existSequence(java.lang.String sequenceKey, TopiaContext ctxt) throws TopiaException- Throws:
TopiaException
-
createSequence
- Throws:
TopiaException
-
updateSequence
- Throws:
TopiaException
-
getCurrentValueFromSequence
public java.math.BigInteger getCurrentValueFromSequence(java.lang.String sequenceKey, TopiaContext ctxt) throws TopiaException- Throws:
TopiaException
-
getNextValueFromSequence
public java.math.BigInteger getNextValueFromSequence(java.lang.String sequenceKey, TopiaContext ctxt) throws TopiaException- Throws:
TopiaException
-
existSequence
public boolean existSequence(java.lang.Class<? extends TopiaEntity> entityClass, java.lang.String propertyName, TopiaContext ctxt) throws TopiaException- Throws:
TopiaException
-
createSequence
public void createSequence(java.lang.Class<? extends TopiaEntity> entityClass, java.lang.String propertyName, TopiaContext ctxt) throws TopiaException- Throws:
TopiaException
-
updateSequence
public void updateSequence(java.lang.Class<? extends TopiaEntity> entityClass, java.lang.String propertyName, TopiaContext ctxt) throws TopiaException- Throws:
TopiaException
-
getCurrentValueFromSequence
public java.math.BigInteger getCurrentValueFromSequence(java.lang.Class<? extends TopiaEntity> entityClass, java.lang.String propertyName, TopiaContext ctxt) throws TopiaException- Throws:
TopiaException
-
getNextValueFromSequence
public java.math.BigInteger getNextValueFromSequence(java.lang.Class<? extends TopiaEntity> entityClass, java.lang.String propertyName, TopiaContext ctxt) throws TopiaException- Throws:
TopiaException
-
getSequenceKeysIterator
public java.util.Iterator<java.lang.String> getSequenceKeysIterator() -
existSequence
public boolean existSequence(java.lang.String sequenceKey, TopiaContext ctxt, boolean check) throws TopiaException- Throws:
TopiaException
-
createSequence
public void createSequence(java.lang.String sequenceKey, TopiaContext ctxt, boolean check) throws TopiaException- Throws:
TopiaException
-
updateSequence
public void updateSequence(java.lang.String sequenceKey, TopiaContext ctxt, boolean check) throws TopiaException- Throws:
TopiaException
-
getCurrentValueFromSequence
public java.math.BigInteger getCurrentValueFromSequence(java.lang.String sequenceKey, TopiaContext ctxt, boolean check) throws TopiaException- Throws:
TopiaException
-
getNextValueFromSequence
public java.math.BigInteger getNextValueFromSequence(java.lang.String sequenceKey, TopiaContext ctxt, boolean check) throws TopiaException- Throws:
TopiaException
-
getDBProperty
protected java.lang.String getDBProperty(java.lang.Class<? extends TopiaEntity> entityClass, java.lang.String property) throws TopiaException- Parameters:
entityClass- the seek entity classproperty- the name of the property to translate- Returns:
- the DB name for the given property
- Throws:
TopiaException- if any db pb
-
getDBTable
protected java.lang.String getDBTable(java.lang.Class<? extends TopiaEntity> entityClass) throws TopiaException- Parameters:
entityClass- the seek entity class- Returns:
- the DB name for the given property
- Throws:
TopiaException- if any db pb
-
getSequenceSQL
protected java.lang.String getSequenceSQL(java.lang.String pattern, java.lang.Class<? extends TopiaEntity> entityClass, java.lang.String propertyName) throws TopiaException- Throws:
TopiaException
-
getSequenceSQL
protected java.lang.String getSequenceSQL(java.lang.String pattern, java.lang.String sequenceKey) throws TopiaException- Throws:
TopiaException
-
getBigInteger
protected java.math.BigInteger getBigInteger(TopiaContext ctxt, java.lang.String sql, java.math.BigInteger defaultSize) throws TopiaException- Throws:
TopiaException
-
doSQLWork
- Throws:
TopiaException
-
getSequencePropertyName
protected java.lang.String getSequencePropertyName(java.lang.String sequenceKey) -
checkSequence
protected java.lang.String checkSequence(java.lang.Class<? extends TopiaEntity> entityClass, java.lang.String propertyName) throws java.lang.IllegalArgumentException, TopiaException- Throws:
java.lang.IllegalArgumentExceptionTopiaException
-
checkSequence
protected java.lang.String checkSequence(java.lang.String sequenceKey) throws java.lang.IllegalArgumentException, TopiaException- Throws:
java.lang.IllegalArgumentExceptionTopiaException
-
initMapping
protected void initMapping(java.util.Properties props) throws java.io.IOException- Throws:
java.io.IOException
-
finalize
protected void finalize() throws java.lang.Throwable- Overrides:
finalizein classjava.lang.Object- Throws:
java.lang.Throwable
-
close
public void close()
-