com.mf.kennewick.broker
Class DatabaseBroker

java.lang.Object
  extended bycom.mf.kennewick.broker.DatabaseBroker
All Implemented Interfaces:
IBroker

public abstract class DatabaseBroker
extends java.lang.Object
implements IBroker

Base broker for mapping layers that use a relational database. Provides helpful utilities for formatting SQL strings and assembles the SQL for the most common SQL statements. Implementors should create a seperate subclass for each domain object and subclass BrokerRegistry to locate and instantiate the correct brokers.

Author:
Jeffrey Payne

Constructor Summary
DatabaseBroker()
           
 
Method Summary
 boolean asBoolean(java.lang.String aValue)
           
 java.lang.Boolean asBooleanWrapper(java.lang.String aValue)
           
 java.lang.String asColumnName(java.lang.String propertyName)
           
static java.lang.String asColumnName(java.lang.String propertyName, java.lang.Class domainClass)
           
static java.lang.String asColumnName(java.lang.String propertyName, KennewickObject anObject)
           
static ObjectIdentifier asIdentifier(java.lang.String aValue)
           
 java.lang.String asQueryString(boolean aValue)
           
 java.lang.String asQueryString(double aNumber)
           
 java.lang.String asQueryString(float aNumber)
           
 java.lang.String asQueryString(int aNumber)
           
 java.lang.String asQueryString(KennewickObject anObject)
           
 java.lang.String asQueryString(long aNumber)
           
 java.lang.String asQueryString(ObjectIdentifier anId)
           
 java.lang.String asQueryString(java.lang.String aString)
           
 void delete(KennewickObject anObject, ITransaction trans)
           
 java.sql.ResultSet executeQuery(java.lang.String sql, java.sql.Connection conn)
          Performs a non-transactional SQL query using the first available connection.
 int executeUpdate(java.lang.String sql)
          Performs a non-transactional SQL update using the first available connection.
protected  java.lang.String generateTableQualifier()
           
abstract  java.util.Map getColumnMappings()
          Returns a Map associating property names from the corresponding domain object with their column names in the database.
abstract  java.util.Map getColumnValues(KennewickObject anObject)
          Retuns a map of property names associated with SQL safe strings for each of the property values for the given KennewickObject.
abstract  java.lang.String getDatasourceId()
           
protected  java.lang.String getIdentityColumn()
           
protected  java.lang.String getIdentityWhereClause(KennewickObject anObject)
           
protected  java.lang.String getIdentityWhereClause(java.util.Map columnMap, java.util.Map valueMap)
           
 java.lang.String getSchemaQualifier()
           
abstract  java.lang.String getTableName()
          Returns the table name used to store data for this broker's corresponding domain object.
 void insert(KennewickObject anObject, ITransaction trans)
           
abstract  KennewickObject lazyLoadChildObject(KennewickObject anObject, java.lang.String fieldName)
           
abstract  java.util.Collection lazyLoadCollection(KennewickObject anObject, java.lang.String fieldName)
           
 java.util.Map lazyLoadMap(KennewickObject anObject, java.lang.String fieldName)
           
abstract  KennewickObject map(java.sql.ResultSet rs)
           
 java.util.Collection retrieveAll(java.lang.Class objectClass, ITransaction aTransaction)
           
 java.util.Collection retrieveObjectIdentifiers(java.lang.Class objectClass, java.lang.String aWhereClause, java.lang.String anOrderByClause, ITransaction trans)
           
 java.util.Collection retrieveObjects(java.lang.Class objectClass, java.lang.String aWhereClause, java.lang.String anOrderByClause, ITransaction trans)
           
 KennewickObject retrieveSingleObject(java.lang.Class objectClass, java.lang.String aWhereClause, ITransaction trans)
           
 KennewickObject retrieveSingleObjectByID(java.lang.Class objectClass, ObjectIdentifier anId, ITransaction trans)
           
 void save(KennewickObject anObject, ITransaction trans)
          Saves the object passed in to the database using the given transaction.
 java.lang.String translateClause(java.lang.String rawClause)
          Given a clause that contains property names, replaces the property names with column names.
static java.lang.String translateClause(java.lang.String rawClause, java.lang.Class queriedClass)
           
 void update(KennewickObject anObject, DatabaseTransaction aTransaction)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.mf.kennewick.broker.IBroker
searchObjects
 

Constructor Detail

DatabaseBroker

public DatabaseBroker()
Method Detail

getDatasourceId

public abstract java.lang.String getDatasourceId()

getTableName

public abstract java.lang.String getTableName()
Returns the table name used to store data for this broker's corresponding domain object.

Returns:

getColumnMappings

public abstract java.util.Map getColumnMappings()
Returns a Map associating property names from the corresponding domain object with their column names in the database.

Returns:

getColumnValues

public abstract java.util.Map getColumnValues(KennewickObject anObject)
Retuns a map of property names associated with SQL safe strings for each of the property values for the given KennewickObject.

Parameters:
anObject -
Returns:

map

public abstract KennewickObject map(java.sql.ResultSet rs)
                             throws java.lang.Exception
Throws:
java.lang.Exception

lazyLoadCollection

public abstract java.util.Collection lazyLoadCollection(KennewickObject anObject,
                                                        java.lang.String fieldName)
                                                 throws java.lang.Exception
Specified by:
lazyLoadCollection in interface IBroker
Throws:
java.lang.Exception

lazyLoadChildObject

public abstract KennewickObject lazyLoadChildObject(KennewickObject anObject,
                                                    java.lang.String fieldName)
                                             throws java.lang.Exception
Specified by:
lazyLoadChildObject in interface IBroker
Throws:
java.lang.Exception

getSchemaQualifier

public java.lang.String getSchemaQualifier()

getIdentityWhereClause

protected java.lang.String getIdentityWhereClause(KennewickObject anObject)

getIdentityColumn

protected java.lang.String getIdentityColumn()

getIdentityWhereClause

protected java.lang.String getIdentityWhereClause(java.util.Map columnMap,
                                                  java.util.Map valueMap)

save

public void save(KennewickObject anObject,
                 ITransaction trans)
          throws java.lang.Exception
Description copied from interface: IBroker
Saves the object passed in to the database using the given transaction. If aTransaction is null, then the object is automatically committed.

Specified by:
save in interface IBroker
Parameters:
anObject -
trans -
Throws:
java.lang.Exception

executeUpdate

public int executeUpdate(java.lang.String sql)
                  throws java.lang.Exception
Performs a non-transactional SQL update using the first available connection.

Parameters:
sql -
Returns:
Throws:
java.lang.Exception

executeQuery

public java.sql.ResultSet executeQuery(java.lang.String sql,
                                       java.sql.Connection conn)
                                throws java.lang.Exception
Performs a non-transactional SQL query using the first available connection.

Parameters:
sql -
Returns:
Throws:
java.lang.Exception

retrieveSingleObjectByID

public KennewickObject retrieveSingleObjectByID(java.lang.Class objectClass,
                                                ObjectIdentifier anId,
                                                ITransaction trans)
                                         throws java.lang.Exception
Specified by:
retrieveSingleObjectByID in interface IBroker
Throws:
java.lang.Exception

retrieveSingleObject

public KennewickObject retrieveSingleObject(java.lang.Class objectClass,
                                            java.lang.String aWhereClause,
                                            ITransaction trans)
                                     throws java.lang.Exception
Throws:
java.lang.Exception

retrieveObjectIdentifiers

public java.util.Collection retrieveObjectIdentifiers(java.lang.Class objectClass,
                                                      java.lang.String aWhereClause,
                                                      java.lang.String anOrderByClause,
                                                      ITransaction trans)
                                               throws java.lang.Exception
Throws:
java.lang.Exception

retrieveObjects

public java.util.Collection retrieveObjects(java.lang.Class objectClass,
                                            java.lang.String aWhereClause,
                                            java.lang.String anOrderByClause,
                                            ITransaction trans)
                                     throws java.lang.Exception
Throws:
java.lang.Exception

update

public void update(KennewickObject anObject,
                   DatabaseTransaction aTransaction)
            throws java.lang.Exception
Throws:
java.lang.Exception

delete

public void delete(KennewickObject anObject,
                   ITransaction trans)
            throws java.lang.Exception
Specified by:
delete in interface IBroker
Throws:
java.lang.Exception

insert

public void insert(KennewickObject anObject,
                   ITransaction trans)
            throws java.lang.Exception
Throws:
java.lang.Exception

asQueryString

public java.lang.String asQueryString(ObjectIdentifier anId)

asQueryString

public java.lang.String asQueryString(KennewickObject anObject)

asQueryString

public java.lang.String asQueryString(java.lang.String aString)

asQueryString

public java.lang.String asQueryString(int aNumber)

asQueryString

public java.lang.String asQueryString(long aNumber)

asQueryString

public java.lang.String asQueryString(float aNumber)

asQueryString

public java.lang.String asQueryString(double aNumber)

asQueryString

public java.lang.String asQueryString(boolean aValue)

asBoolean

public boolean asBoolean(java.lang.String aValue)

asBooleanWrapper

public java.lang.Boolean asBooleanWrapper(java.lang.String aValue)

asColumnName

public static java.lang.String asColumnName(java.lang.String propertyName,
                                            java.lang.Class domainClass)

asColumnName

public static java.lang.String asColumnName(java.lang.String propertyName,
                                            KennewickObject anObject)

asColumnName

public java.lang.String asColumnName(java.lang.String propertyName)

asIdentifier

public static ObjectIdentifier asIdentifier(java.lang.String aValue)
                                     throws java.lang.Exception
Throws:
java.lang.Exception

translateClause

public java.lang.String translateClause(java.lang.String rawClause)
Given a clause that contains property names, replaces the property names with column names.

Parameters:
rawClause -
Returns:

translateClause

public static java.lang.String translateClause(java.lang.String rawClause,
                                               java.lang.Class queriedClass)

generateTableQualifier

protected java.lang.String generateTableQualifier()
                                           throws java.lang.Exception
Throws:
java.lang.Exception

retrieveAll

public java.util.Collection retrieveAll(java.lang.Class objectClass,
                                        ITransaction aTransaction)
                                 throws java.lang.Exception
Specified by:
retrieveAll in interface IBroker
Throws:
java.lang.Exception

lazyLoadMap

public java.util.Map lazyLoadMap(KennewickObject anObject,
                                 java.lang.String fieldName)
                          throws java.lang.Exception
Specified by:
lazyLoadMap in interface IBroker
Throws:
java.lang.Exception


Copyright © 2004 Media Fortress, LLC, LLC. Licensed for commercial use under the Apache 2.0 License.