org.exolab.castor.jdo.engine

Class SQLEngine

public final class SQLEngine extends Object implements Persistence

The SQL engine performs persistence of one object type against one SQL database. It can only persist simple objects and extended relationships. An SQL engine is created for each object type represented by a database. When persisting, it requires a physical connection that maps to the SQL database and the transaction running on that database

Version: $Revision: 1.38 $ $Date: 2005/10/13 07:40:54 $

Author: Assaf Arkin Thomas Yip Bruce Snyder

Nested Class Summary
static classSQLEngine.ColumnInfo
static classSQLEngine.FieldInfo
static classSQLEngine.SQLQuery
Constructor Summary
SQLEngine(JDOClassDescriptor clsDesc, PersistenceFactory factory, String stampField)
Method Summary
Objectcreate(Database database, Object conn, Object[] fields, Object identity)
PersistenceQuerycreateCall(String spCall, Class[] types)
PersistenceQuerycreateQuery(QueryExpression query, Class[] types, AccessMode accessMode)
voiddelete(Object conn, Object identity)
Persistence.ColumnInfo[]getColumnInfoForIdentities()
JDOClassDescriptorgetDescriptor()
Used by OQLQuery to retrieve the class descriptor.
QueryExpressiongetFinder()
Persistence.FieldInfo[]getInfo()
QueryExpressiongetQueryExpression()
Objectload(Object conn, ProposedObject proposedObject, Object identity, AccessMode accessMode)
Loads the object from persistence storage.
StringquoteName(String name)
Used by ParseTreeWalker to quote names in WHERE clause
voidsetExtends(SQLEngine engine)
Mutator method for setting extends SQLEngine
Objectstore(Object conn, Object[] fields, Object identity, Object[] original, Object stamp)
StringtoString()
voidwriteLock(Object conn, Object identity)

Constructor Detail

SQLEngine

SQLEngine(JDOClassDescriptor clsDesc, PersistenceFactory factory, String stampField)

Method Detail

create

public Object create(Database database, Object conn, Object[] fields, Object identity)

createCall

public PersistenceQuery createCall(String spCall, Class[] types)

createQuery

public PersistenceQuery createQuery(QueryExpression query, Class[] types, AccessMode accessMode)

delete

public void delete(Object conn, Object identity)

getColumnInfoForIdentities

public Persistence.ColumnInfo[] getColumnInfoForIdentities()

getDescriptor

public JDOClassDescriptor getDescriptor()
Used by OQLQuery to retrieve the class descriptor.

Returns: the JDO class descriptor.

getFinder

public QueryExpression getFinder()

getInfo

public Persistence.FieldInfo[] getInfo()

getQueryExpression

public QueryExpression getQueryExpression()

load

public Object load(Object conn, ProposedObject proposedObject, Object identity, AccessMode accessMode)
Loads the object from persistence storage. This method will load the object fields from persistence storage based on the object's identity. This method may return a stamp which can be used at a later point to determine whether the copy of the object in persistence storage is newer than the cached copy (see SQLEngine). If lock is true the object must be locked in persistence storage to prevent concurrent updates.

Parameters: conn An open connection fields An Object[] to load field values into identity Identity of the object to load. accessMode The access mode (null equals shared)

Returns: The object's stamp, or null

Throws: ObjectNotFoundException The object was not found in persistent storage PersistenceException A persistence error occured

quoteName

public String quoteName(String name)
Used by ParseTreeWalker to quote names in WHERE clause

Parameters: name A name to be quoted

Returns: a quoted name.

setExtends

public void setExtends(SQLEngine engine)
Mutator method for setting extends SQLEngine

Parameters: engine

store

public Object store(Object conn, Object[] fields, Object identity, Object[] original, Object stamp)

toString

public String toString()

writeLock

public void writeLock(Object conn, Object identity)
Intalio Inc. (C) 1999-2004. All rights reserved http://www.intalio.com