Class QCon
- java.lang.Object
-
- com.db4o.internal.query.processor.QCon
-
- All Implemented Interfaces:
Visitor4
,Constraint
,Unversioned
- Direct Known Subclasses:
QConEvaluation
,QConJoin
,QConObject
,QConstraints
,QConUnconditional
public abstract class QCon extends java.lang.Object implements Constraint, Visitor4, Unversioned
Base class for all constraints on queries.
-
-
Constructor Summary
Constructors Constructor Description QCon()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description Constraint
and(Constraint andWith)
Links two Constraints for AND evaluation.Constraint
byExample()
Set the evaluation mode to object comparison (query by example).boolean
canBeIndexLeaf()
boolean
canLoadByIndex()
protected abstract boolean
canResolveByFieldIndex()
int
childrenCount()
ObjectContainerBase
container()
Constraint
contains()
Sets the evaluation mode to string contains comparison.Constraint
endsWith(boolean caseSensitive)
Sets the evaluation mode to string endsWith comparison.Constraint
equal()
Used in conjunction withConstraint.smaller()
orConstraint.greater()
to create constraints like "smaller or equal", "greater or equal".QE
evaluator()
QField
getField()
java.lang.Object
getObject()
Returns the Object the query graph was constrained with to create thisConstraint
.Constraint
greater()
Sets the evaluation mode to >.boolean
hasChildren()
boolean
hasJoins()
boolean
hasObjectInParentPath(java.lang.Object obj)
boolean
hasParent()
int
id()
Constraint
identity()
Sets the evaluation mode to identity comparison.int
identityID()
protected void
internalSetProcessedByIndex(QCandidates candidates)
Iterator4
iterateChildren()
Iterator4
iterateJoins()
Constraint
like()
Sets the evaluation mode to "like" comparison.Constraint
not()
Turns on not() comparison.boolean
onSameFieldAs(QCon other)
Constraint
or(Constraint orWith)
Links two Constraints for OR evaluation.QCon
parent()
boolean
processedByIndex()
void
setCandidates(QCandidates a_candidates)
void
setProcessedByIndex(QCandidates candidates)
Constraint
smaller()
Sets the evaluation mode to <.Constraint
startsWith(boolean caseSensitive)
Sets the evaluation mode to string startsWith comparison.protected java.lang.Object
streamLock()
Transaction
transaction()
void
visit(java.lang.Object obj)
-
-
-
Method Detail
-
container
public ObjectContainerBase container()
-
transaction
public Transaction transaction()
-
and
public Constraint and(Constraint andWith)
Description copied from interface:Constraint
Links two Constraints for AND evaluation. For example:
query.constrain(Pilot.class); query.descend("points").constrain(101).smaller().and(query.descend("name").constrain("Test Pilot0"));
will retrieve all pilots with points less than 101 and name as "Test Pilot0"- Specified by:
and
in interfaceConstraint
- Parameters:
andWith
- the otherConstraint
- Returns:
- a new
Constraint
, that can be used for further calls toConstraint.and(Constraint)
andConstraint.or(Constraint)
-
canBeIndexLeaf
public boolean canBeIndexLeaf()
-
canLoadByIndex
public boolean canLoadByIndex()
-
contains
public Constraint contains()
Description copied from interface:Constraint
Sets the evaluation mode to string contains comparison. This only works on strings. The contains comparison is case sensitive. For example:
Pilot pilot = new Pilot("Test Pilot1", 100); container.store(pilot); ... query.constrain(Pilot.class); // All pilots with the name containing "est" will be retrieved query.descend("name").constrain("est").contains();
- Specified by:
contains
in interfaceConstraint
- Returns:
- this to allow the chaining of method calls.
- See Also:
like() for case insensitive string comparison
-
equal
public Constraint equal()
Description copied from interface:Constraint
Used in conjunction withConstraint.smaller()
orConstraint.greater()
to create constraints like "smaller or equal", "greater or equal". For example:
query.constrain(Pilot.class); query.descend("points").constrain(101).smaller().equal();
will return all pilots with points <= 101.- Specified by:
equal
in interfaceConstraint
- Returns:
- this
Constraint
to allow the chaining of method calls.
-
canResolveByFieldIndex
protected abstract boolean canResolveByFieldIndex()
-
getField
public QField getField()
-
getObject
public java.lang.Object getObject()
Description copied from interface:Constraint
Returns the Object the query graph was constrained with to create thisConstraint
.- Specified by:
getObject
in interfaceConstraint
- Returns:
- Object the constraining object.
-
greater
public Constraint greater()
Description copied from interface:Constraint
Sets the evaluation mode to >. For example:
query.constrain(Pilot.class); query.descend("points").constrain(101).greater()
will return all pilots with points > 101.- Specified by:
greater
in interfaceConstraint
- Returns:
- this
Constraint
to allow the chaining of method calls.
-
hasChildren
public boolean hasChildren()
-
hasParent
public boolean hasParent()
-
parent
public QCon parent()
-
hasJoins
public boolean hasJoins()
-
hasObjectInParentPath
public boolean hasObjectInParentPath(java.lang.Object obj)
-
identity
public Constraint identity()
Description copied from interface:Constraint
Sets the evaluation mode to identity comparison. In this case only objects having the same database identity will be included in the result set. For example:
Pilot pilot = new Pilot("Test Pilot1", 100); Car car = new Car("Ferrari", pilot); container.store(car); Car otherCar = new Car("Ferrari", pilot); container.store(otherCar); Query query = container.query(); query.constrain(Car.class); // All cars having pilot with the same database identity // will be retrieved. query.descend("pilot").constrain(pilot).identity();
- Specified by:
identity
in interfaceConstraint
- Returns:
- this
Constraint
to allow the chaining of method calls.
-
byExample
public Constraint byExample()
Description copied from interface:Constraint
Set the evaluation mode to object comparison (query by example).- Specified by:
byExample
in interfaceConstraint
- Returns:
- this to allow the chaining of method calls.
-
identityID
public int identityID()
-
iterateJoins
public Iterator4 iterateJoins()
-
iterateChildren
public Iterator4 iterateChildren()
-
like
public Constraint like()
Description copied from interface:Constraint
Sets the evaluation mode to "like" comparison. This is a contains comparison which is case insensitive. This only works on strings. This mode will include all objects having the constrain expression somewhere inside the string field. For example:
Pilot pilot = new Pilot("Test Pilot1", 100); container.store(pilot); ... query.constrain(Pilot.class); // All pilots with the name containing "est" will be retrieved query.descend("name").constrain("est").like();
- Specified by:
like
in interfaceConstraint
- Returns:
- this to allow the chaining of method calls.
-
startsWith
public Constraint startsWith(boolean caseSensitive)
Description copied from interface:Constraint
Sets the evaluation mode to string startsWith comparison. For example:
Pilot pilot = new Pilot("Test Pilot0", 100); container.store(pilot); ... query.constrain(Pilot.class); query.descend("name").constrain("Test").startsWith(true);
- Specified by:
startsWith
in interfaceConstraint
- Parameters:
caseSensitive
- comparison will be case sensitive if true, case insensitive otherwise- Returns:
- this to allow the chaining of method calls.
-
endsWith
public Constraint endsWith(boolean caseSensitive)
Description copied from interface:Constraint
Sets the evaluation mode to string endsWith comparison. For example:
Pilot pilot = new Pilot("Test Pilot0", 100); container.store(pilot); ...
query.constrain(Pilot.class); query.descend("name").constrain("T0").endsWith(false);- Specified by:
endsWith
in interfaceConstraint
- Parameters:
caseSensitive
- comparison will be case sensitive if true, case insensitive otherwise- Returns:
- this to allow the chaining of method calls.
-
not
public Constraint not()
Description copied from interface:Constraint
Turns on not() comparison. All objects not full filling the constrain condition will be returned. For example:
Pilot pilot = new Pilot("Test Pilot1", 100); container.store(pilot); ... query.constrain(Pilot.class); query.descend("name").constrain("t0").endsWith(true).not();
- Specified by:
not
in interfaceConstraint
- Returns:
- this
Constraint
to allow the chaining of method calls.
-
onSameFieldAs
public boolean onSameFieldAs(QCon other)
- Parameters:
other
-
-
or
public Constraint or(Constraint orWith)
Description copied from interface:Constraint
Links two Constraints for OR evaluation. For example:
query.constrain(Pilot.class); query.descend("points").constrain(101).greater().or(query.descend("name").constrain("Test Pilot0"));
will retrieve all pilots with points more than 101 or pilots with the name "Test Pilot0"- Specified by:
or
in interfaceConstraint
- Parameters:
orWith
- the otherConstraint
- Returns:
- a new
Constraint
, that can be used for further calls toConstraint.and(Constraint)
andConstraint.or(Constraint)
-
setCandidates
public void setCandidates(QCandidates a_candidates)
-
smaller
public Constraint smaller()
Description copied from interface:Constraint
Sets the evaluation mode to <. For example:
query.constrain(Pilot.class); query.descend("points").constrain(101).smaller()
will return all pilots with points < 101.- Specified by:
smaller
in interfaceConstraint
- Returns:
- this
Constraint
to allow the chaining of method calls.
-
streamLock
protected java.lang.Object streamLock()
-
evaluator
public QE evaluator()
-
setProcessedByIndex
public void setProcessedByIndex(QCandidates candidates)
-
internalSetProcessedByIndex
protected void internalSetProcessedByIndex(QCandidates candidates)
-
processedByIndex
public boolean processedByIndex()
-
childrenCount
public int childrenCount()
-
id
public int id()
-
-