DEPRECATED Use com.bea.p13n.content.expression.ExpressionHelper
instead.
Object
Helper class to handle dealing with Expression, Criteria, and Logical objects.
Related Topics
Object
ExpressionHelper
Nested Class Summary |
public static class | com.beasys.commerce.util.ExpressionHelper.ParseException
Exception to report an error while parsing a query expression. |
Constructor Summary |
Method Summary |
public static |
|
public static |
|
public static int |
|
public static boolean |
|
public static |
|
public static |
|
public static | |
public static void |
|
public static void |
|
public static |
|
public static | |
public static | |
public static |
|
public static |
|
Methods from class java.lang. |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public ExpressionHelper()
Method Detail |
public staticConvert a generic exception into a ParseException.ExpressionHelper.ParseException
convertException(Exception
excep)
public staticConvert a String literal (which may contain quoted characters) into a corresponding String value.String
fromStringLiteral(String
in)
This supports the standard Java Language Specification escape sequences.
public static int getOrdinalValue(char ch)Get the ordinal (Unicode) value of a character.
public static boolean isHexString(String
str)
Determine is a string contains only ASCII hexidecimal characters
([0-9a-fA-F]).
public staticJoin together two expression via an AND expression.Logical
join(Expression
expr1,Expression
expr2)
public staticNormalize an Expression.Expression
normalize(Expression
expr)
This will remove:
public staticConvert a query expression string into an Expression object.Expression
parse(String
queryStr)
throwsExpressionHelper.ParseException
,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:
ExpressionHelper.ParseException
IllegalArgumentException
Related Topics
ExpressionHelper.convertException(Exception)
ExpressionHelper.normalize(Expression)
public static void printTree(For debug purposes, print the given expression as a tree.PrintWriter
out,Expression
expr)
public static void printTree(int depth,For debug purposes, print the given expression as a tree at the given depth.PrintWriter
out,Expression
expr)
public staticGet a string representation of the given expression.String
toString(Expression
expr)
Pretty much, a string generated from this method can be parse()'ed into the equivalent (not neccessarily identical) expression tree.
public staticReturn a string representation of the given criteria.String
toString(Criteria
c)
public staticReturn a string representation of the given Logical.String
toString(Logical
l)
public staticGet an ASCII String literal from a Java string.String
toStringLiteral(String
in)
This will quote some special characters with back-slashes.
The output of this can be sent through ExpressionHelper.fromStringLiteral(String)
to result in the original String.
public staticFor debug purposes, return a tree representation of the given expression.String
toTree(Expression
expr)