org.apache.ojb.odmg.oql
Class OQLQueryImpl

java.lang.Object
  extended byorg.apache.ojb.odmg.oql.OQLQueryImpl
All Implemented Interfaces:
Configurable, EnhancedOQLQuery, OQLQuery

public class OQLQueryImpl
extends java.lang.Object
implements EnhancedOQLQuery, Configurable

Insert the type's description here. Creation date: (08.05.01 13:12:58)


Constructor Summary
OQLQueryImpl(PBKey key)
           
 
Method Summary
 void bind(java.lang.Object parameter)
          Bind a parameter to the query.
 void configure(Configuration pConfig)
          configure an object using the Configuration pConfig
 void create(java.lang.String queryString)
          Create an OQL query from the string parameter.
 void create(java.lang.String queryString, int startAtIndex, int endAtIndex)
           
 java.lang.Object execute()
          Execute the query.
 int fullSize()
           
protected  java.util.ListIterator getBindIterator()
          Gets the bindIterator.
protected  java.lang.Class getCollectionClass()
          returns the collection type to be used to contain oql query result sets
protected  OdmgConfiguration getConfiguration()
           
 Query getQuery()
          returns the compiled query object
protected  void performLockingIfRequired(Transaction tx, PersistenceBroker broker, ManageableCollection result)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OQLQueryImpl

public OQLQueryImpl(PBKey key)
Method Detail

getQuery

public Query getQuery()
returns the compiled query object


getCollectionClass

protected java.lang.Class getCollectionClass()
returns the collection type to be used to contain oql query result sets


bind

public void bind(java.lang.Object parameter)
          throws QueryParameterCountInvalidException,
                 QueryParameterTypeInvalidException
Bind a parameter to the query. A parameter is denoted in the query string passed to create by $i, where i is the rank of the parameter, beginning with 1. The parameters are set consecutively by calling this method bind. The ith variable is set by the ith call to the bind method. If any of the $i are not set by a call to bind at the point execute is called, QueryParameterCountInvalidException is thrown. The parameters must be objects, and the result is an Object. Objects must be used instead of primitive types (Integer instead of int) for passing the parameters.

If the parameter is of the wrong type, QueryParameterTypeInvalidException is thrown. After executing a query, the parameter list is reset.

Specified by:
bind in interface OQLQuery
Parameters:
parameter - A value to be substituted for a query parameter.
Throws:
QueryParameterCountInvalidException - The number of calls to bind has exceeded the number of parameters in the query.
QueryParameterTypeInvalidException - The type of the parameter does not correspond with the type of the parameter in the query.

create

public void create(java.lang.String queryString)
            throws QueryInvalidException
Create an OQL query from the string parameter. In order to execute a query, an OQLQuery object must be created by calling Implementation.newOQLQuery, then calling the create method with the query string. The create method might throw QueryInvalidException if the query could not be compiled properly. Some implementations may not want to compile the query before execute is called. In this case QueryInvalidException is thrown when execute is called.

Specified by:
create in interface OQLQuery
Parameters:
queryString - An OQL query.
Throws:
QueryInvalidException - The query syntax is invalid.

create

public void create(java.lang.String queryString,
                   int startAtIndex,
                   int endAtIndex)
            throws QueryInvalidException
Specified by:
create in interface EnhancedOQLQuery
Throws:
QueryInvalidException

execute

public java.lang.Object execute()
                         throws QueryException
Execute the query. After executing a query, the parameter list is reset. Some implementations may throw additional exceptions that are also derived from ODMGException.

Specified by:
execute in interface OQLQuery
Returns:
The object that represents the result of the query. The returned data, whatever its OQL type, is encapsulated into an object. For instance, when OQL returns an integer, the result is put into an Integer object. When OQL returns a collection (literal or object), the result is always a Java collection object of the same kind (for instance, a DList).
Throws:
QueryException - An exception has occurred while executing the query.

performLockingIfRequired

protected void performLockingIfRequired(Transaction tx,
                                        PersistenceBroker broker,
                                        ManageableCollection result)

getConfiguration

protected OdmgConfiguration getConfiguration()

getBindIterator

protected java.util.ListIterator getBindIterator()
Gets the bindIterator.

Returns:
Returns a ListIterator

configure

public void configure(Configuration pConfig)
               throws ConfigurationException
Description copied from interface: Configurable
configure an object using the Configuration pConfig

Specified by:
configure in interface Configurable
Parameters:
pConfig - the Configuration object used to configure current instance
Throws:
ConfigurationException

fullSize

public int fullSize()
Specified by:
fullSize in interface EnhancedOQLQuery
Returns:


Authors: Thomas Mahler and others. (C) 2000 - 2003 Apache Software Foundation
All rights reserved. Published under the Apache License.
http://db.apache.org/ojb
Version: 1.0.rc5, 2003-12-14