Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.apache.ojb.broker.query
Class Criteria  view Criteria download Criteria.java

java.lang.Object
  extended byorg.apache.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. This code is based on stuff from COBRA - Java Object Persistence Layer Copyright (C) 1997, 1998 DB Harvey-George eMail: cobra@lowrent.org


Field Summary
static int AND
           
private  java.util.Vector criteria
           
private  boolean embraced
           
private  java.util.List groupby
           
protected static int IN_LIMIT
           
static int NONE
           
static int OR
           
private  java.util.List orderby
           
private  java.util.List prefetchedRelationships
           
private  int type
           
 
Constructor Summary
Criteria()
          Constructor declaration
Criteria(SelectionCriteria aSelectionCriteria)
          Constructor with a SelectionCriteria * @param aSelectionCriteria
 
Method Summary
protected  java.util.List _getGroupby()
          Gets the groupby for ReportQueries, the elements are of class Criteria.FieldHelper
protected  java.util.List _getOrderby()
          Answer the Vector with all orderBy, the elements are of class Criteria.FieldHelper
 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
 void addEqualToColumn(java.lang.String attribute, java.lang.String colName)
          Adds and equals (=) criteria for column comparison.
 void addEqualToField(java.lang.String attribute, java.lang.String fieldName)
          Adds and equals (=) criteria for field 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 addGreaterOrEqualThanField(java.lang.String attribute, java.lang.Object value)
          Adds GreaterOrEqual Than (>=) criteria, customer_id >= person_id
 void addGreaterThan(java.lang.String attribute, java.lang.Object value)
          Adds Greater Than (>) criteria, customer_id > 10034
 void addGreaterThanField(java.lang.String attribute, java.lang.Object value)
          Adds Greater Than (>) criteria, customer_id > person_id
 void addGroupBy(org.apache.ojb.broker.metadata.FieldHelper aField)
          Adds a field for groupby
 void addGroupBy(java.lang.String fieldName)
          Adds a groupby fieldName for ReportQueries.
 void addGroupBy(java.lang.String[] fieldNames)
          Adds an array of groupby fieldNames for ReportQueries.
 void addIn(java.lang.String attribute, java.util.Collection values)
          Adds IN criteria, customer_id in(1,10,33,44) large values are split into multiple InCriteria IN (1,10) OR IN(33, 44)
 void addIn(java.lang.String attribute, Query subQuery)
          IN Criteria with SubQuery * @param attribute * @param subQuery
 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 addLessOrEqualThanField(java.lang.String attribute, java.lang.Object value)
          Adds LessOrEqual Than (<=) criteria, customer_id <= person_id
 void addLessThan(java.lang.String attribute, java.lang.Object value)
          Adds Less Than (<) criteria, customer_id < 10034
 void addLessThanField(java.lang.String attribute, java.lang.Object value)
          Adds Less Than (<) criteria, customer_id < person_id
 void addLike(java.lang.String attribute, java.lang.Object value)
          Adds Like (LIKE) criteria, customer_name LIKE "m%ller" Where Value is a string simple pattern matching can be used, the character * is a wildcard, e.g.
 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
 void addNotEqualToColumn(java.lang.String attribute, java.lang.String colName)
          Adds and equals (<>) criteria for column comparison.
 void addNotEqualToField(java.lang.String attribute, java.lang.String fieldName)
          Adds and equals (=) criteria for field comparison.
 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,44) large values are split into multiple InCriteria NOT IN (1,10) AND NOT IN(33, 44)
 void addNotIn(java.lang.String attribute, Query subQuery)
          NOT IN Criteria with SubQuery
 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:
 void addOrderBy(org.apache.ojb.broker.metadata.FieldHelper aField)
          Adds a field for orderBy
 void addOrderBy(java.lang.String fieldName)
          Deprecated. use #addOrderByAscending(String fieldName)
 void addOrderBy(java.lang.String fieldName, boolean sortAscending)
          Adds a field for orderBy
 void addOrderByAscending(java.lang.String fieldName)
          Adds a field for orderBy ASCENDING
 void addOrderByDescending(java.lang.String fieldName)
          Adds a field for orderBy DESCENDING
 void addPrefetchedRelationship(java.lang.String aName)
          add the name of aRelationship for prefetch read
 void addSql(java.lang.String anSqlStatment)
          Adds freeform SQL criteria, REVERSE(name) like 're%'
 Criteria copy(boolean includeGroupBy, boolean includeOrderBy, boolean includePrefetchedRelationships)
          make a copy of the criteria
protected  java.lang.String generateSQLSearchPattern(java.lang.String pattern)
          Generate a SQL search string from the pattern string passed.
protected  java.util.Vector getCriteria()
          Get a Vector with all sub criteria
 java.util.Enumeration getElements()
          Get an Enumeration with all sub criteria
 java.util.List getGroupby()
          Gets the groupby for ReportQueries of all Criteria and Sub Criteria the elements are of class Criteria.
 java.util.List getOrderby()
          Answer the orderBy of all Criteria and Sub Criteria the elements are of class Criteria.
 java.util.List getPrefetchedRelationships()
          Returns the prefetchedRelationships.
private static int getSqlInLimit()
          read the prefetchInLimit from Config based on OJB.properties
 int getType()
          Answer the type
 void groupBy(java.lang.String fieldName)
          Deprecated. use #addGroupBy(String fieldName)
 void groupBy(java.lang.String[] fieldNames)
          Deprecated. use #addGroupBy(String[] fieldNames)
 boolean isEmbraced()
          Answer true if embraced, ANDed criteria are embraced
 boolean isEmpty()
          Answer true if no sub criteria available
 void orderBy(java.lang.String fieldName)
          Deprecated. use #addOrderByAscending(String fieldName)
 void orderBy(java.lang.String fieldName, boolean sortAscending)
          Deprecated. use #addOrderByAscending(String fieldName) or #addOrderByDescending(String fieldName)
 void setEmbraced(boolean embraced)
          Set embraced
 void setType(int type)
          Set the type
protected  java.util.List splitInCriteria(java.lang.String attribute, java.util.Collection values, boolean negative, int inLimit)
          Answer a List of InCriteria based on values, each InCriteria contains only inLimit values * @param attribute * @param values * @param negative * @param inLimit the maximum number of values for IN (-1 for no limit)
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, 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

criteria

private java.util.Vector criteria

type

private int type

embraced

private boolean embraced

orderby

private java.util.List orderby

groupby

private java.util.List groupby

prefetchedRelationships

private java.util.List prefetchedRelationships

IN_LIMIT

protected static final int IN_LIMIT
Constructor Detail

Criteria

public Criteria()
Constructor declaration


Criteria

public Criteria(SelectionCriteria aSelectionCriteria)
Constructor with a SelectionCriteria * @param aSelectionCriteria

Method Detail

copy

public Criteria copy(boolean includeGroupBy,
                     boolean includeOrderBy,
                     boolean includePrefetchedRelationships)
make a copy of the criteria


splitInCriteria

protected java.util.List splitInCriteria(java.lang.String attribute,
                                         java.util.Collection values,
                                         boolean negative,
                                         int inLimit)
Answer a List of InCriteria based on values, each InCriteria contains only inLimit values * @param attribute * @param values * @param negative * @param inLimit the maximum number of values for IN (-1 for no limit)


getElements

public java.util.Enumeration getElements()
Get an Enumeration with all sub criteria


getCriteria

protected java.util.Vector getCriteria()
Get a Vector with all sub criteria


getType

public int getType()
Answer the type


setType

public void setType(int type)
Set the type


isEmbraced

public boolean isEmbraced()
Answer true if embraced, ANDed criteria are embraced


setEmbraced

public void setEmbraced(boolean embraced)
Set embraced


addEqualTo

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


generateSQLSearchPattern

protected 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.


addEqualToField

public void addEqualToField(java.lang.String attribute,
                            java.lang.String fieldName)
Adds and equals (=) criteria for field comparison. The field name will be translated into the appropriate columnName by SqlStatement.
name = boss.name


addNotEqualToField

public void addNotEqualToField(java.lang.String attribute,
                               java.lang.String fieldName)
Adds and equals (=) criteria for field comparison. The field name will be translated into the appropriate columnName by SqlStatement.
name <> boss.name


addNotEqualToColumn

public void addNotEqualToColumn(java.lang.String attribute,
                                java.lang.String colName)
Adds and equals (<>) criteria for column comparison. The column Name will NOT be translated.
name <> T_BOSS.LASTNMAE


addEqualToColumn

public void addEqualToColumn(java.lang.String attribute,
                             java.lang.String colName)
Adds and equals (=) criteria for column comparison. The column Name will NOT be translated.
name = T_BOSS.LASTNMAE


addGreaterOrEqualThan

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


addGreaterOrEqualThanField

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


addLessOrEqualThan

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


addLessOrEqualThanField

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


addLike

public void addLike(java.lang.String attribute,
                    java.lang.Object value)
Adds Like (LIKE) criteria, customer_name LIKE "m%ller" 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\*.


addNotLike

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


addNotEqualTo

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


addGreaterThan

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


addGreaterThanField

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


addLessThan

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


addLessThanField

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


addOrderBy

public void addOrderBy(java.lang.String fieldName)
Deprecated. use #addOrderByAscending(String fieldName)

Adds a field for orderBy, order is ASCENDING


addOrderBy

public void addOrderBy(java.lang.String fieldName,
                       boolean sortAscending)
Adds a field for orderBy


addOrderBy

public void addOrderBy(org.apache.ojb.broker.metadata.FieldHelper aField)
Adds a field for orderBy


addOrderByAscending

public void addOrderByAscending(java.lang.String fieldName)
Adds a field for orderBy ASCENDING


addOrderByDescending

public void addOrderByDescending(java.lang.String fieldName)
Adds a field for orderBy DESCENDING


orderBy

public void orderBy(java.lang.String fieldName)
Deprecated. use #addOrderByAscending(String fieldName)

Sets the single field for orderBy, order is ASCENDING


orderBy

public void orderBy(java.lang.String fieldName,
                    boolean sortAscending)
Deprecated. use #addOrderByAscending(String fieldName) or #addOrderByDescending(String fieldName)

Sets the single field for orderBy


getOrderby

public java.util.List getOrderby()
Answer the orderBy of all Criteria and Sub Criteria the elements are of class Criteria. FieldHelper


_getOrderby

protected java.util.List _getOrderby()
Answer the Vector with all orderBy, the elements are of class Criteria.FieldHelper


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


addNotNull

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


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


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


addIn

public void addIn(java.lang.String attribute,
                  java.util.Collection values)
Adds IN criteria, customer_id in(1,10,33,44) large values are split into multiple InCriteria IN (1,10) OR IN(33, 44)


addNotIn

public void addNotIn(java.lang.String attribute,
                     java.util.Collection values)
Adds NOT IN criteria, customer_id not in(1,10,33,44) large values are split into multiple InCriteria NOT IN (1,10) AND NOT IN(33, 44)


addIn

public void addIn(java.lang.String attribute,
                  Query subQuery)
IN Criteria with SubQuery * @param attribute * @param subQuery


addNotIn

public void addNotIn(java.lang.String attribute,
                     Query subQuery)
NOT IN Criteria with SubQuery


addSql

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


addAndCriteria

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


addExists

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


addNotExists

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


isEmpty

public boolean isEmpty()
Answer true if no sub criteria available


getGroupby

public java.util.List getGroupby()
Gets the groupby for ReportQueries of all Criteria and Sub Criteria the elements are of class Criteria. FieldHelper


_getGroupby

protected java.util.List _getGroupby()
Gets the groupby for ReportQueries, the elements are of class Criteria.FieldHelper


addGroupBy

public void addGroupBy(java.lang.String fieldName)
Adds a groupby fieldName for ReportQueries.


addGroupBy

public void addGroupBy(org.apache.ojb.broker.metadata.FieldHelper aField)
Adds a field for groupby


groupBy

public void groupBy(java.lang.String[] fieldNames)
Deprecated. use #addGroupBy(String[] fieldNames)

Sets an array of groupby fieldNames for ReportQueries.


addGroupBy

public void addGroupBy(java.lang.String[] fieldNames)
Adds an array of groupby fieldNames for ReportQueries.


groupBy

public void groupBy(java.lang.String fieldName)
Deprecated. use #addGroupBy(String fieldName)

Sets the single groupby fieldName for ReportQueries.


getPrefetchedRelationships

public java.util.List getPrefetchedRelationships()
Returns the prefetchedRelationships.


addPrefetchedRelationship

public void addPrefetchedRelationship(java.lang.String aName)
add the name of aRelationship for prefetch read


getSqlInLimit

private static int getSqlInLimit()
read the prefetchInLimit from Config based on OJB.properties