|
BEA Systems, Inc. | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--com.beasys.commerce.util.ExpressionHelper
Helper class to handle dealing with Expression, Criteria, and Logical objects.
Expression
,
Criteria
,
Logical
Inner Class Summary | |
static interface |
ExpressionHelper.ParseException
Exception to report an error while parsing a query expression. |
Constructor Summary | |
ExpressionHelper()
|
Method Summary | |
static ExpressionHelper.ParseException |
convertException(java.lang.Exception excep)
Convert a generic exception into a ParseException. |
static java.lang.String |
fromStringLiteral(java.lang.String in)
Convert a String literal (which may contain quoted characters) into a corresponding String value. |
static int |
getOrdinalValue(char ch)
Get the ordinal (Unicode) value of a character. |
static boolean |
isHexString(java.lang.String str)
Determine is a string contains only ASCII hexidecimal characters ([0-9a-fA-F]). |
static Logical |
join(Expression expr1,
Expression expr2)
Join together two expression via an AND expression. |
static Expression |
normalize(Expression expr)
Normalize an Expression. |
static Expression |
parse(java.lang.String queryStr)
Convert a query expression string into an Expression object. |
static void |
printTree(int depth,
java.io.PrintWriter out,
Expression expr)
For debug purposes, print the given expression as a tree at the given depth. |
static void |
printTree(java.io.PrintWriter out,
Expression expr)
For debug purposes, print the given expression as a tree. |
static java.lang.String |
toString(Criteria c)
Return a string representation of the given criteria. |
static java.lang.String |
toString(Expression expr)
Get a string representation of the given expression. |
static java.lang.String |
toString(Logical l)
Return a string representation of the given Logical. |
static java.lang.String |
toStringLiteral(java.lang.String in)
Get an ASCII String literal from a Java string. |
static java.lang.String |
toTree(Expression expr)
For debug purposes, return a tree representation of the given expression. |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
Constructor Detail |
public ExpressionHelper()
Method Detail |
public static Expression parse(java.lang.String queryStr) throws ExpressionHelper.ParseException, java.lang.IllegalArgumentException
The string should follow the query syntax specified in the
Personalization Server documentation. The expression syntax is
tree-based, with each leaf in the tree beinging of the form "property
comparator value" (e.g. "identifier == '1234'
").
This specifies the object property to match against.
To specify a property name which contains non-identifier
characters (e.g. whitespace, double quotes,
dashes), you can use the
toProperty('property name')
"scope.name
" form or the
toProperty('scope', 'property')
"
The valid comparision operators are =
(or
==
),
!=
, <
, >
,
<=
, >=
, "like
", and
"contains
". The "like
" operator expects the
pattern (which is the value of the leaf) to use *
(match
all) and ?
(match any); "like
" also is only
expected to work against String values, although it might work with
other datatypes depending upon the search implementation. The
"contains
" operator is only expected to work against
multi-valued properties, although it might work with other datatypes
depending upon the search implementation.
\u6565
"),
octal (e.g. "\7
", "\65
",
"\377
"), and standard Java escape sequences (e.g.
"\n
", "\r
", "\b
") are
allowed in the string literals.
true
" or
"false
" keyword (without quotes).
toDate(['formatStr'],
'dateStr')
"formatStr
must be a valid
SimpleDateFormat
format
string; if omitted, MM/dd/yyyy HH:mm:ss z
'now
" keyword specifies the current
time/date.
Each branch in the tree is comprised of 1 or more leafs or branches
separated by either "&&
" (boolean AND) or
"||
" (boolean OR).
They can be enclosed in parenthesis for clearity and ordering (AND has
precendance over OR). Additionally, "!
" marks a branch as
using negative logical (boolean NOT). The "!
" operator
can only be used preceding an open parenthesis.
Examples of valid expression strings:
queryStr
- the query expression stringconvertException(java.lang.Exception)
,
normalize(com.beasys.commerce.foundation.expression.Expression)
public static Logical join(Expression expr1, Expression expr2)
expr1
- the first expression.expr2
- the second expression.public static Expression normalize(Expression expr)
This will remove:
expr
- the incoming expression.public static java.lang.String toString(Expression expr)
Pretty much, a string generated from this method can be parse()'ed into the equivalent (not neccessarily identical) expression tree.
expr
- the expression.public static java.lang.String toString(Criteria c)
public static java.lang.String toString(Logical l)
public static java.lang.String toTree(Expression expr)
public static void printTree(java.io.PrintWriter out, Expression expr)
out
- the output stream to print on.expr
- the expression.public static void printTree(int depth, java.io.PrintWriter out, Expression expr)
depth
- the depth of this expression in the tree.out
- the output stream to print on.expr
- the expression.public static java.lang.String fromStringLiteral(java.lang.String in)
This supports the standard Java Language Specification escape sequences.
in
- the input string literal.public static boolean isHexString(java.lang.String str)
public static java.lang.String toStringLiteral(java.lang.String in)
This will quote some special characters with back-slashes.
The output of this can be sent through fromStringLiteral(java.lang.String)
to result in the original String.
public static int getOrdinalValue(char ch)
public static ExpressionHelper.ParseException convertException(java.lang.Exception excep)
|
BEA Systems, Inc. | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |