org.nuiton.topia.persistence.util
Class DBMapping

java.lang.Object
  extended by 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:
chemit

Field Summary
protected static java.lang.String CLASS_PATTERN
           
protected static java.lang.String CREATE_SEQUENCE_FORMAT
           
protected static java.lang.String CURRENT_VALUE_SEQUENCE_FORMAT
           
protected static java.lang.String DBNAME_ATTRIBUTE_PATTERN
           
protected static java.lang.String DOT
           
protected static org.apache.commons.logging.Log log
          log
protected  java.util.Map<java.lang.String,java.lang.String> mappingBeanToDb
           
protected static java.lang.String NEXT_VALUE_SEQUENCE_FORMAT
           
protected  java.lang.String schema
           
protected static java.lang.String SCHEMA_FORMAT
           
protected static java.lang.String SEQUENCE_ATTRIBUTE_PATTERN
           
protected  java.util.Map<java.lang.String,java.lang.Class<? extends TopiaEntity>> sequences
           
protected static java.lang.String UPDATE_SEQUENCE_FORMAT
           
 
Constructor Summary
DBMapping(java.lang.String propertyFile, java.lang.String path)
           
 
Method Summary
protected  java.lang.String checkSequence(java.lang.Class<? extends TopiaEntity> entityClass, java.lang.String propertyName)
           
protected  java.lang.String checkSequence(java.lang.String sequenceKey)
           
 void close()
           
 void createSequence(java.lang.Class<? extends TopiaEntity> entityClass, java.lang.String propertyName, TopiaContext ctxt)
           
 void createSequence(java.lang.String sequenceKey, TopiaContext ctxt)
           
 void createSequence(java.lang.String sequenceKey, TopiaContext ctxt, boolean check)
           
 void createSequences(TopiaContext ctxt)
           
protected  void doSQLWork(TopiaContext ctxt, java.lang.String sql)
           
 boolean existSequence(java.lang.Class<? extends TopiaEntity> entityClass, java.lang.String propertyName, TopiaContext ctxt)
           
 boolean existSequence(java.lang.String sequenceKey, TopiaContext ctxt)
           
 boolean existSequence(java.lang.String sequenceKey, TopiaContext ctxt, boolean check)
           
protected  void finalize()
           
protected  java.math.BigInteger getBigInteger(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.BigInteger getCurrentValueFromSequence(java.lang.Class<? extends TopiaEntity> entityClass, java.lang.String propertyName, TopiaContext ctxt)
           
 java.math.BigInteger getCurrentValueFromSequence(java.lang.String sequenceKey, TopiaContext ctxt)
           
 java.math.BigInteger getCurrentValueFromSequence(java.lang.String sequenceKey, TopiaContext ctxt, boolean check)
           
protected  java.lang.String getDBProperty(java.lang.Class<? extends TopiaEntity> entityClass, java.lang.String property)
           
protected  java.lang.String getDBTable(java.lang.Class<? extends TopiaEntity> entityClass)
           
 java.math.BigInteger getNextValueFromSequence(java.lang.Class<? extends TopiaEntity> entityClass, java.lang.String propertyName, TopiaContext ctxt)
           
 java.math.BigInteger getNextValueFromSequence(java.lang.String sequenceKey, TopiaContext ctxt)
           
 java.math.BigInteger getNextValueFromSequence(java.lang.String sequenceKey, TopiaContext ctxt, boolean check)
           
 java.util.Iterator<java.lang.String> getSequenceKeysIterator()
           
protected  java.lang.String getSequencePropertyName(java.lang.String sequenceKey)
           
protected  java.lang.String getSequenceSQL(java.lang.String pattern, java.lang.Class<? extends TopiaEntity> entityClass, java.lang.String propertyName)
           
protected  java.lang.String getSequenceSQL(java.lang.String pattern, java.lang.String sequenceKey)
           
 void init(TopiaContext ctxt, boolean doCreate, boolean doUpdate)
           
protected  void initMapping(java.util.Properties props)
           
 void updateSequence(java.lang.Class<? extends TopiaEntity> entityClass, java.lang.String propertyName, TopiaContext ctxt)
           
 void updateSequence(java.lang.String sequenceKey, TopiaContext ctxt)
           
 void updateSequence(java.lang.String sequenceKey, TopiaContext ctxt, boolean check)
           
 void updateSequences(TopiaContext ctxt)
           
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

protected static final org.apache.commons.logging.Log log
log


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

protected java.util.Map<java.lang.String,java.lang.Class<? extends TopiaEntity>> sequences

schema

protected java.lang.String schema
Constructor Detail

DBMapping

public DBMapping(java.lang.String propertyFile,
                 java.lang.String path)
          throws java.io.IOException
Throws:
java.io.IOException
Method Detail

getContractClass

protected abstract java.lang.Class<? extends TopiaEntity> getContractClass(java.lang.Class<? extends TopiaEntity> entityClass)
                                                                    throws TopiaException
Throws:
TopiaException

init

public void init(TopiaContext ctxt,
                 boolean doCreate,
                 boolean doUpdate)
          throws TopiaException
Throws:
TopiaException

createSequences

public void createSequences(TopiaContext ctxt)
                     throws TopiaException
Throws:
TopiaException

updateSequences

public void updateSequences(TopiaContext ctxt)
                     throws TopiaException
Throws:
TopiaException

existSequence

public boolean existSequence(java.lang.String sequenceKey,
                             TopiaContext ctxt)
                      throws TopiaException
Throws:
TopiaException

createSequence

public void createSequence(java.lang.String sequenceKey,
                           TopiaContext ctxt)
                    throws TopiaException
Throws:
TopiaException

updateSequence

public void updateSequence(java.lang.String sequenceKey,
                           TopiaContext ctxt)
                    throws TopiaException
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 class
property - 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

protected void doSQLWork(TopiaContext ctxt,
                         java.lang.String sql)
                  throws TopiaException
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.IllegalArgumentException
TopiaException

checkSequence

protected java.lang.String checkSequence(java.lang.String sequenceKey)
                                  throws java.lang.IllegalArgumentException,
                                         TopiaException
Throws:
java.lang.IllegalArgumentException
TopiaException

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:
finalize in class java.lang.Object
Throws:
java.lang.Throwable

close

public void close()


Copyright © 2004-2010 CodeLutin. All Rights Reserved.