Package com.zfabrik.util.expression
Class X
- java.lang.Object
-
- com.zfabrik.util.expression.X
-
- Direct Known Subclasses:
X.BinaryOp,X.UnaryOp,X.Val,X.Var
public abstract class X extends java.lang.ObjectSimple boolean expression language as a Java expressed DSL.Xis used in component repositories to formulate component queries but may be used anywhere where simple boolean expressions are useful.A built-in evaluation of an expression over a map defining a context is supported.
For example, given a map
m={"a":5, "b":"hello"},var("a").ge(val(6)).and(var("b").eq(val("hello"))).eval(m)would evaluate tofalsewhilevar("a").le(val(6)).and(var("b").eq(val("hello"))).eval(m)would evaluate totrue.- Author:
- hb
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classX.And"AND" logical operatorstatic classX.BinaryOpAbstract binary operatorsstatic classX.Eq"equality" comparison operator.static classX.Ge"greater or equal" comparison operator.static classX.Gt"greater than" comparison operator.static classX.In"containment" operator.static classX.Le"less or equal" comparison operator.static classX.Lt"less than" comparison operator.static classX.Neq"not equals" comparison operator.static classX.NotNegation logical operatorstatic classX.Or"OR" logical operatorstatic classX.UnaryOpAbstract single-operand operatorstatic classX.ValExplicit value.static classX.VarVariable of field value operator.static classX.Xor"XOR" logical operator
-
Constructor Summary
Constructors Constructor Description X()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description Xand(X x)Convenience method for chain-style notation of expressions.static Xand(X x, X y)Static factory method, for convenienceXeq(X x)Convenience method for chain-style notation of expressions.static Xeq(X x, X y)Static factory method, for conveniencejava.lang.Objecteval()abstract java.lang.Objecteval(java.util.Map<java.lang.String,java.lang.Object> context)Evaluation of the expression over a map style context that defines variable values.java.lang.Objecteval(java.util.Properties context)Convenience version ofeval(Map)accepting aPropertiesargumentXge(X x)Convenience method for chain-style notation of expressions.Xgt(X x)Convenience method for chain-style notation of expressions.Xin(X x)Convenience method for chain-style notation of expressions.Xle(X x)Convenience method for chain-style notation of expressions.Xlt(X x)Convenience method for chain-style notation of expressions.Xneq(X x)Convenience method for chain-style notation of expressions.static Xneq(X x, X y)Static factory method, for convenienceXnot()Convenience method for chain-style notation of expressions.static Xnot(X x)Static factory method, for convenienceXor(X x)Convenience method for chain-style notation of expressions.static Xor(X x, X y)Static factory method, for conveniencestatic Xval(java.lang.Object val)Static factory method, for conveniencestatic Xvar(java.lang.String name)Static factory method, for convenienceXxor(X x)Convenience method for chain-style notation of expressions.static Xxor(X x, X y)Static factory method, for convenience
-
-
-
Method Detail
-
not
public X not()
Convenience method for chain-style notation of expressions.
-
val
public static X val(java.lang.Object val)
Static factory method, for convenience
-
var
public static X var(java.lang.String name)
Static factory method, for convenience
-
eval
public abstract java.lang.Object eval(java.util.Map<java.lang.String,java.lang.Object> context)
Evaluation of the expression over a map style context that defines variable values.
-
eval
public java.lang.Object eval(java.util.Properties context)
Convenience version ofeval(Map)accepting aPropertiesargument
-
eval
public java.lang.Object eval()
-
-