public abstract class Expression extends Object implements Serializable, XMLSerializable
Modifier and Type | Field and Description |
---|---|
static int |
ADD |
static int |
AND |
static int |
BETWEEN |
static int |
BITWISE_AND |
static int |
BITWISE_NOT |
static int |
BITWISE_OR |
static int |
BITWISE_XOR |
static int |
DB_PATH
Expression describes a path relative to a DbEntity.
|
static int |
DIVIDE |
static int |
EQUAL_TO |
static int |
FALSE |
static int |
GREATER_THAN |
static int |
GREATER_THAN_EQUAL_TO |
static int |
IN |
static int |
LESS_THAN |
static int |
LESS_THAN_EQUAL_TO |
static int |
LIKE |
static int |
LIKE_IGNORE_CASE |
static int |
LIST
Interpreted as a comma-separated list of literals.
|
static int |
MULTIPLY |
static int |
NEGATIVE |
static int |
NOT |
static int |
NOT_BETWEEN |
static int |
NOT_EQUAL_TO |
static int |
NOT_IN |
static int |
NOT_LIKE |
static int |
NOT_LIKE_IGNORE_CASE |
static int |
OBJ_PATH
Expression describes a path relative to an ObjEntity.
|
static int |
OR |
static Object |
PRUNED_NODE
A value that a Transformer might return to indicate that a node has to be pruned
from the expression during the transformation.
|
static int |
SUBTRACT |
static int |
TRUE |
protected int |
type |
Constructor and Description |
---|
Expression() |
Modifier and Type | Method and Description |
---|---|
Expression |
andExp(Expression exp)
Chains this expression with another expression using "and".
|
Expression |
deepCopy()
Clones this expression.
|
abstract void |
encodeAsEJBQL(PrintWriter pw,
String rootId)
Stores a String representation of Expression as EJBQL using a provided PrintWriter.
|
abstract void |
encodeAsString(PrintWriter pw)
Stores a String representation of Expression using a provided PrintWriter.
|
void |
encodeAsXML(XMLEncoder encoder)
Encodes itself, wrapping the string into XML CDATA section.
|
boolean |
equals(Object object) |
abstract Object |
evaluate(Object o)
Calculates expression value with object as a context for path expressions.
|
String |
expName()
Returns String label for this expression.
|
Expression |
expWithParameters(Map<String,?> parameters)
A shortcut for
expWithParams(params, true) . |
Expression |
expWithParameters(Map<String,?> parameters,
boolean pruneMissing)
Creates and returns a new Expression instance using this expression as a prototype.
|
<T> Collection<?> |
filter(Collection<T> source,
Collection<T> target)
Adds objects matching this expression from the source collection to the target
collection.
|
<T> List<T> |
filterObjects(List<T> objects)
Returns a list of objects that match the expression.
|
<T> T |
first(List<T> objects)
Returns the first object in the list that matches the expression.
|
protected abstract void |
flattenTree()
Restructures expression to make sure that there are no children of the same type as
this expression.
|
static Expression |
fromString(String expressionString)
Parses string, converting it to Expression.
|
abstract Object |
getOperand(int index)
Returns a value of operand at
index . |
abstract int |
getOperandCount()
Returns a count of operands of this expression.
|
abstract Map<String,String> |
getPathAliases()
Returns a map of path aliases for this expression.
|
int |
getType()
Returns a type of expression.
|
Expression |
joinExp(int type,
Expression exp)
Creates a new expression that joins this object with another expression, using
specified join type.
|
boolean |
match(Object o)
Calculates expression boolean value with object as a context for path expressions.
|
abstract Expression |
notExp()
Returns a logical NOT of current expression.
|
Expression |
orExp(Expression exp)
Chains this expression with another expression using "or".
|
protected abstract boolean |
pruneNodeForPrunedChild(Object prunedChild)
Returns true if this node should be pruned from expression tree in the event a
child is removed.
|
abstract void |
setOperand(int index,
Object value)
Sets a value of operand at
index . |
void |
setType(int type) |
abstract Expression |
shallowCopy()
Creates a copy of this expression node, without copying children.
|
String |
toEJBQL(String rootId) |
String |
toString() |
Expression |
transform(org.apache.commons.collections.Transformer transformer)
Creates a transformed copy of this expression, applying transformation provided by
Transformer to all its nodes.
|
protected Object |
transformExpression(org.apache.commons.collections.Transformer transformer)
A recursive method called from "transform" to do the actual transformation.
|
protected void |
traverse(Expression parentExp,
TraversalHandler visitor)
Traverses itself and child expressions, notifying visitor via callback methods as
it goes.
|
void |
traverse(TraversalHandler visitor)
Traverses itself and child expressions, notifying visitor via callback methods as
it goes.
|
public static final Object PRUNED_NODE
public static final int AND
public static final int OR
public static final int NOT
public static final int EQUAL_TO
public static final int NOT_EQUAL_TO
public static final int LESS_THAN
public static final int GREATER_THAN
public static final int LESS_THAN_EQUAL_TO
public static final int GREATER_THAN_EQUAL_TO
public static final int BETWEEN
public static final int IN
public static final int LIKE
public static final int LIKE_IGNORE_CASE
public static final int ADD
public static final int SUBTRACT
public static final int MULTIPLY
public static final int DIVIDE
public static final int NEGATIVE
public static final int TRUE
public static final int FALSE
public static final int OBJ_PATH
public static final int DB_PATH
public static final int LIST
public static final int NOT_BETWEEN
public static final int NOT_IN
public static final int NOT_LIKE
public static final int NOT_LIKE_IGNORE_CASE
public static final int BITWISE_NOT
public static final int BITWISE_AND
public static final int BITWISE_OR
public static final int BITWISE_XOR
protected int type
public static Expression fromString(String expressionString)
public abstract Map<String,String> getPathAliases()
public String expName()
public int getType()
public void setType(int type)
public Expression expWithParameters(Map<String,?> parameters)
expWithParams(params, true)
.public Expression expWithParameters(Map<String,?> parameters, boolean pruneMissing)
params
map.
Null values in the params
map should be explicitly created in the
map for the corresponding key.
parameters
- a map of parameters, with each key being a string name of an
expression parameter, and value being the value that should be used in
the final expression.pruneMissing
- If true
, subexpressions that rely on missing
parameters will be pruned from the resulting tree. If false
, any missing values will generate an exception.public Expression joinExp(int type, Expression exp)
public Expression andExp(Expression exp)
public Expression orExp(Expression exp)
public abstract Expression notExp()
public abstract int getOperandCount()
public abstract Object getOperand(int index)
index
. Operand indexing starts at 0.public abstract void setOperand(int index, Object value)
index
. Operand indexing starts at 0.public abstract Object evaluate(Object o)
public boolean match(Object o)
public <T> T first(List<T> objects)
public <T> List<T> filterObjects(List<T> objects)
public <T> Collection<?> filter(Collection<T> source, Collection<T> target)
public Expression deepCopy()
public abstract Expression shallowCopy()
protected abstract boolean pruneNodeForPrunedChild(Object prunedChild)
protected abstract void flattenTree()
public void traverse(TraversalHandler visitor)
protected void traverse(Expression parentExp, TraversalHandler visitor)
public Expression transform(org.apache.commons.collections.Transformer transformer)
To force a node and its children to be pruned from the copy, Transformer should return Expression.PRUNED_NODE. Otherwise an expectation is that if a node is an Expression it must be transformed to null or another Expression. Any other object type would result in a ExpressionException.
protected Object transformExpression(org.apache.commons.collections.Transformer transformer)
public void encodeAsXML(XMLEncoder encoder)
encodeAsXML
in interface XMLSerializable
public abstract void encodeAsString(PrintWriter pw)
public abstract void encodeAsEJBQL(PrintWriter pw, String rootId)
Copyright © 2001–2018 Apache Cayenne. All rights reserved.