JEXL(Java Expression Language)

Unfold Hierarchy number Tags Values

      JEXL(Java Expression Language)
        1  Examples
            1.1  Object
                1.1.1  double
JEXL script
var d = new('java.lang.Double', 0d);
return 'minmum of positive=' + d.MIN_VALUE + ' maximum=' + d.MAX_VALUE;
                1.1.2  string
JEXL script
var s = new('java.lang.String', 'Hello');
return 'include e:'+ s.contains('e') + '  length:' + s.length();
                1.1.3  time
JEXL script
var date = new('java.util.Date');
return 'current time:' + date.toString() + '  value:' + date.getTime();
            1.2  Math
                1.2.1  e
JEXL script
Math.E
JEXL Context
jexlContext.set("Math", Math.class);
                1.2.2  pi
JEXL script
Math.PI
JEXL Context
jexlContext.set("Math", Math.class);
                1.2.3  absoluate
JEXL script
Math.abs(-5.611)
JEXL Context
jexlContext.set("Math", Math.class);
                1.2.4  square root
JEXL script
Math.sqrt(9)
JEXL Context
jexlContext.set("Math", Math.class);
                1.2.5  cubic root
JEXL script
Math.cbrt(27)
JEXL Context
jexlContext.set("Math", Math.class);
                1.2.6  power
JEXL script
Math.pow(2,5)
JEXL Context
jexlContext.set("Math", Math.class);
                1.2.7  power of e
JEXL script
Math.exp(2)
JEXL Context
jexlContext.set("Math", Math.class);
                1.2.8  natural logarithm(base e)
JEXL script
Math.log(6)
JEXL Context
jexlContext.set("Math", Math.class);
                1.2.9  common logarithm(base 10)
JEXL script
Math.log10(6)
JEXL Context
jexlContext.set("Math", Math.class);
                1.2.10  cosine
JEXL script
Math.cos(0)
JEXL Context
jexlContext.set("Math", Math.class);
                1.2.11  sine
JEXL script
Math.sin(9)
JEXL Context
jexlContext.set("Math", Math.class);
                1.2.12  tangent
JEXL script
Math.tan(5)
JEXL Context
jexlContext.set("Math", Math.class);
                1.2.13  arc tangent
JEXL script
Math.atan(-7.3)
JEXL Context
jexlContext.set("Math", Math.class);
                1.2.14  arc cosine
JEXL script
Math.acos(0.5)
JEXL Context
jexlContext.set("Math", Math.class);
                1.2.15  arc sine
JEXL script
Math.asin(0.3)
JEXL Context
jexlContext.set("Math", Math.class);
                1.2.16  round up
JEXL script
Math.ceil(4.13)
JEXL Context
jexlContext.set("Math", Math.class);
                1.2.17  round down
JEXL script
Math.floor(4.67)
JEXL Context
jexlContext.set("Math", Math.class);
                1.2.18  round
JEXL script
Math.round(4.83)
JEXL Context
jexlContext.set("Math", Math.class);
                1.2.19  random()
JEXL script
Math.random( )
JEXL Context
jexlContext.set("Math", Math.class);
                1.2.20  maximum
JEXL script
Math.max(1,-3)
JEXL Context
jexlContext.set("Math", Math.class);
                1.2.21  minimum
JEXL script
Math.min(1,-3)
JEXL Context
jexlContext.set("Math", Math.class);
            1.3  Boolean expression
                1.3.1  in array
JEXL script
var value = 3;
var array = [1,'2',3, 'hello'];
value =~ array;
                1.3.2  not in set
JEXL script
var value = 2;
var set = {1,'2',3, 'hello'};
value !~ set;
                1.3.3  match string
JEXL script
var s = 'abc1233hello';
var regex = '\\S*3{2,}\\S*';
var caseInsensitive = true;
StringTools.match(s,regex,caseInsensitive);
JEXL Context
jexlContext.set("StringTools", mara.mybox.tools.StringTools.class);
                1.3.4  include string
JEXL script
var s = 'abc1233hello';
var regex = '3{2}';
var caseInsensitive = true;
StringTools.include(s,regex,caseInsensitive);
JEXL Context
jexlContext.set("StringTools", mara.mybox.tools.StringTools.class);
                1.3.5  and/or/not
JEXL script
var a = 5;
var b = 2;
'hello'.startsWith('hell') and ( a < 9 or b >= 6  ) and not ( a == b );
            1.4  Numeric operations
                1.4.1  decimal scale
JEXL script
var d = 52362.18903;
var scale = 2;
DoubleTools.scale(d, scale);
JEXL Context
jexlContext.set("DoubleTools", mara.mybox.tools.DoubleTools.class);
                1.4.2  format
JEXL script
var d = 52362.18903;
var scale = 2;
DoubleTools.format(d, scale);
JEXL Context
jexlContext.set("DoubleTools", mara.mybox.tools.DoubleTools.class);
                1.4.3  percentage
JEXL script
var number = 37;
var total = 518;
var scale = 2;
DoubleTools.percentage(number, total, scale);
JEXL Context
jexlContext.set("DoubleTools", mara.mybox.tools.DoubleTools.class);
            1.5  Date
                1.5.1  now
JEXL script
DateTools.nowString();
JEXL Context
jexlContext.set("DateTools", mara.mybox.tools.DateTools.class);
                1.5.2  format
JEXL script
var date = new('java.util.Date');
var format = 'yyyy-MM-dd HH:mm:ss.SSS';
DateTools.datetimeToString(date, format);
JEXL Context
jexlContext.set("DateTools", mara.mybox.tools.DateTools.class);
            1.6  Statement
                1.6.1  loop
JEXL script
var array = [ 'A', 'B', 'C', 'D' ];
var arrayString = '';
for (var i : 1 .. size (array)) {
    if (empty (arrayString)) {
         arrayString = array[i-1];
    } else {
         arrayString += ' , ' + array[i-1];
    }
}
return arrayString;
                1.6.2  function
JEXL script
var circleArea = function(r) {
    Math.PI * r * r 
}
var r = 9.42;
return circleArea(r);
JEXL Context
jexlContext.set("Math", Math.class);