ojb.broker.query
Class Criteria

java.lang.Object
  |
  +--ojb.broker.query.Criteria
All Implemented Interfaces:
java.io.Serializable

public class Criteria
extends java.lang.Object
implements java.io.Serializable

Persistent Criteria can be used to retrieve sets of objects based on their attributes Normally each attribute is ANDed together, an OR can be performed by creating a new PersistentCriteria and adding it.

Criteria are used, rather than a simple string, because they can be precompiled for efficiency.

See Also:
Serialized Form

Field Summary
static int AND
           
static int NONE
           
static int OR
           
 
Constructor Summary
Criteria()
          Constructor declaration
 
Method Summary
 void addAndCriteria(Criteria pc)
          ANDs two sets of criteria together:
 void addBetween(java.lang.String attribute, java.lang.Object value1, java.lang.Object value2)
          Adds BETWEEN criteria, customer_id between 1 and 10
 void addEqualTo(java.lang.String attribute, java.lang.Object value)
          Adds and equals (=) criteria, customer_id = 10034 Where Value is a string simple pattern matching can be used, the character * is a wildcard, e.g.
 void addEqualToColumn(java.lang.String attribute, java.lang.String colName)
          Adds and equals (=) criteria for column comparison.
 void addExists(Query subQuery)
          Adds an exists(sub query)
 void addGreaterOrEqualThan(java.lang.String attribute, java.lang.Object value)
          Adds GreaterOrEqual Than (>=) criteria, customer_id >= 10034
 void addGreaterThan(java.lang.String attribute, java.lang.Object value)
          Adds Greater Than (>) criteria, customer_id > 10034
 void addIn(java.lang.String attribute, java.util.Collection values)
          Adds IN criteria, customer_id in(1,10,33)
 void addIsNull(java.lang.String attribute)
          Adds is Null criteria, customer_id is Null
 void addLessOrEqualThan(java.lang.String attribute, java.lang.Object value)
          Adds LessOrEqual Than (<=) criteria, customer_id <= 10034
 void addLessThan(java.lang.String attribute, java.lang.Object value)
          Adds Less Than (<) criteria, customer_id < 10034
 void addLike(java.lang.String attribute, java.lang.Object value)
          Adds Like (LIKE) criteria, customer_id LIKE 10034
 void addNotBetween(java.lang.String attribute, java.lang.Object value1, java.lang.Object value2)
          Adds NOT BETWEEN criteria, customer_id not between 1 and 10
 void addNotEqualTo(java.lang.String attribute, java.lang.Object value)
          Adds NotEqualTo (<>) criteria, customer_id <> 10034 Where Value is a string simple pattern matching can be used, the character * is a wildcard, e.g.
 void addNotExists(Query subQuery)
          Adds a not exists(sub query)
 void addNotIn(java.lang.String attribute, java.util.Collection values)
          Adds NOT IN criteria, customer_id not in(1,10,33)
 void addNotLike(java.lang.String attribute, java.lang.Object value)
          Adds Like (NOT LIKE) criteria, customer_id NOT LIKE 10034
 void addNotNull(java.lang.String attribute)
          Adds not Null criteria, customer_id is not Null
 void addOrCriteria(Criteria pc)
          ORs two sets of criteria together: active = true AND balance < 0 OR active = true AND overdraft = 0
 void addSql(java.lang.String anSqlStatment)
          Adds freeform SQL criteria, REVERSE(name) like 're%'
(package private)  java.lang.String generateSQLSearchPattern(java.lang.String pattern)
          Generate a SQL search string from the pattern string passed.
protected  java.util.Vector getCriteria()
          Method declaration
 java.util.Enumeration getElements()
          Method declaration
 java.lang.String[] getGroupby()
          Gets the groupby for ReportQueries.
 java.lang.String getOrderby()
          Method declaration
 int getType()
          Method declaration
 void groupBy(java.lang.String groupby)
          Sets the single groupby for ReportQueries.
 void groupBy(java.lang.String[] groupby)
          Sets the groupby for ReportQueries.
 boolean isAscending()
           
 boolean isEmbraced()
          Method declaration
 boolean isEmpty()
          Insert the method's description here.
 void orderBy(java.lang.String fieldName)
          ORs two sets of criteria together: active = true AND balance < 0 OR active = true AND overdraft = 0
 void orderBy(java.lang.String fieldName, boolean sortAscending)
           
 void setEmbraced(boolean embraced)
          Method declaration
 void setType(int type)
          Method declaration
 java.lang.String toString()
          Method declaration
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

OR

public static final int OR
See Also:
Constant Field Values

AND

public static final int AND
See Also:
Constant Field Values

NONE

public static final int NONE
See Also:
Constant Field Values
Constructor Detail

Criteria

public Criteria()
Constructor declaration

Method Detail

getElements

public java.util.Enumeration getElements()
Method declaration

Returns:

getCriteria

protected java.util.Vector getCriteria()
Method declaration

Returns:

getType

public int getType()
Method declaration

Returns:

setType

public void setType(int type)
Method declaration

Parameters:
type -

isEmbraced

public boolean isEmbraced()
Method declaration

Returns:

setEmbraced

public void setEmbraced(boolean embraced)
Method declaration

Parameters:
embraced -

addEqualTo

public void addEqualTo(java.lang.String attribute,
                       java.lang.Object value)
Adds and equals (=) criteria, customer_id = 10034

Where Value is a string simple pattern matching can be used, the character * is a wildcard, e.g. customer_name = Ander*

Would match the customers: Anderson and Anderton. The character ? matches a single occurence of a character. The '\' character is used as an escape character and allow searching for strings containing * or ?. So in order to search for Ander* - use Ander\*.

Parameters:
attribute - The field name to be used
value - An object representing the value of the field

generateSQLSearchPattern

java.lang.String generateSQLSearchPattern(java.lang.String pattern)
Generate a SQL search string from the pattern string passed. The pattern string is a simple pattern string using * as a wildcard. So Ander* would match Anderson and Anderton. The ? character is used to match a single occurence of a character. The '\' is used to escape the wild card characters so that we can search for strings containing * and ?. This method converts the criteria wildcard strings to SQL wildcards.

Parameters:
pattern - a criteria search pattern containing optional wildcards
Returns:
a SQL search pattern string with all escape codes processed.

addEqualToColumn

public void addEqualToColumn(java.lang.String attribute,
                             java.lang.String colName)
Adds and equals (=) criteria for column comparison.

Parameters:
attribute - The field name to be used
colName - columnname

addGreaterOrEqualThan

public void addGreaterOrEqualThan(java.lang.String attribute,
                                  java.lang.Object value)
Adds GreaterOrEqual Than (>=) criteria, customer_id >= 10034

Parameters:
attribute - The field name to be used
value - An object representing the value of the field

addLessOrEqualThan

public void addLessOrEqualThan(java.lang.String attribute,
                               java.lang.Object value)
Adds LessOrEqual Than (<=) criteria, customer_id <= 10034

Parameters:
attribute - The field name to be used
value - An object representing the value of the field

addLike

public void addLike(java.lang.String attribute,
                    java.lang.Object value)
Adds Like (LIKE) criteria, customer_id LIKE 10034

Parameters:
attribute - The field name to be used
value - An object representing the value of the field

addNotLike

public void addNotLike(java.lang.String attribute,
                       java.lang.Object value)
Adds Like (NOT LIKE) criteria, customer_id NOT LIKE 10034

Parameters:
attribute - The field name to be used
value - An object representing the value of the field

addNotEqualTo

public void addNotEqualTo(java.lang.String attribute,
                          java.lang.Object value)
Adds NotEqualTo (<>) criteria, customer_id <> 10034

Where Value is a string simple pattern matching can be used, the character * is a wildcard, e.g. customer_name = Ander*

Would match the customers: Anderson and Anderton. The character ? matches a single occurence of a character. The '\' character is used as an escape character and allow searching for strings containing * or ?. So in order to search for Ander* - use Ander\*.

Parameters:
attribute - The field name to be used
value - An object representing the value of the field

addGreaterThan

public void addGreaterThan(java.lang.String attribute,
                           java.lang.Object value)
Adds Greater Than (>) criteria, customer_id > 10034

Parameters:
attribute - The field name to be used
value - An object representing the value of the field

addLessThan

public void addLessThan(java.lang.String attribute,
                        java.lang.Object value)
Adds Less Than (<) criteria, customer_id < 10034

Parameters:
attribute - The field name to be used
value - An object representing the value of the field

orderBy

public void orderBy(java.lang.String fieldName)
ORs two sets of criteria together: active = true AND balance < 0 OR active = true AND overdraft = 0

Throws:
PersisentException - when there are no previous criteria to OR with

orderBy

public void orderBy(java.lang.String fieldName,
                    boolean sortAscending)

isAscending

public boolean isAscending()

getOrderby

public java.lang.String getOrderby()
Method declaration

Returns:

toString

public java.lang.String toString()
Method declaration

Overrides:
toString in class java.lang.Object
Returns:

addOrCriteria

public void addOrCriteria(Criteria pc)
ORs two sets of criteria together: active = true AND balance < 0 OR active = true AND overdraft = 0


addIsNull

public void addIsNull(java.lang.String attribute)
Adds is Null criteria, customer_id is Null

Parameters:
attribute - The field name to be used

addNotNull

public void addNotNull(java.lang.String attribute)
Adds not Null criteria, customer_id is not Null

Parameters:
attribute - The field name to be used

addBetween

public void addBetween(java.lang.String attribute,
                       java.lang.Object value1,
                       java.lang.Object value2)
Adds BETWEEN criteria, customer_id between 1 and 10

Parameters:
attribute - The field name to be used
value1 - The lower boundary
value2 - The upper boundary

addNotBetween

public void addNotBetween(java.lang.String attribute,
                          java.lang.Object value1,
                          java.lang.Object value2)
Adds NOT BETWEEN criteria, customer_id not between 1 and 10

Parameters:
attribute - The field name to be used
value1 - The lower boundary
value2 - The upper boundary

addIn

public void addIn(java.lang.String attribute,
                  java.util.Collection values)
Adds IN criteria, customer_id in(1,10,33)

Parameters:
attribute - The field name to be used

addNotIn

public void addNotIn(java.lang.String attribute,
                     java.util.Collection values)
Adds NOT IN criteria, customer_id not in(1,10,33)

Parameters:
attribute - The field name to be used

addSql

public void addSql(java.lang.String anSqlStatment)
Adds freeform SQL criteria, REVERSE(name) like 're%'

Parameters:
anSqlStatment - The free form SQL-Statement

addAndCriteria

public void addAndCriteria(Criteria pc)
ANDs two sets of criteria together:


addExists

public void addExists(Query subQuery)
Adds an exists(sub query)

Parameters:
subQuery - sub-query

addNotExists

public void addNotExists(Query subQuery)
Adds a not exists(sub query)

Parameters:
subQuery - sub-query

isEmpty

public boolean isEmpty()
Insert the method's description here. Creation date: (08.05.01 15:07:41)

Returns:
boolean

getGroupby

public java.lang.String[] getGroupby()
Gets the groupby for ReportQueries.

Returns:
Returns a String[]

groupBy

public void groupBy(java.lang.String[] groupby)
Sets the groupby for ReportQueries.

Parameters:
groupby - The groupby to set

groupBy

public void groupBy(java.lang.String groupby)
Sets the single groupby for ReportQueries.

Parameters:
groupby - The groupby to set


Authors: Thomas Mahler and others. (C) 2000, 2001.
All rights reserved. Published under the Gnu Public License.
http://objectbridge.sourceforge.net
Version: 0.8.375, 2002-04-04