本文整理了Java中org.apache.commons.jexl2.MapContext
类的一些代码示例,展示了MapContext
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。MapContext
类的具体详情如下:
包路径:org.apache.commons.jexl2.MapContext
类名称:MapContext
[英]Wraps a map in a context.
Each entry in the map is considered a variable name, value pair.
[中]在上下文中包装地图。
映射中的每个条目都被视为变量名、值对。
代码示例来源:origin: azkaban/azkaban
Object result = null;
try {
final Expression e = jexl.createExpression(innerExpression);
result = e.evaluate(new MapContext());
} catch (final JexlException e) {
throw new IllegalArgumentException("Expression " + value
代码示例来源:origin: traccar/traccar
private MapContext prepareContext(Position position) {
MapContext result = new MapContext();
if (mapDeviceAttributes) {
Device device = Context.getIdentityManager().getById(position.getDeviceId());
if (device != null) {
for (Object key : device.getAttributes().keySet()) {
result.set((String) key, device.getAttributes().get(key));
}
}
}
Set<Method> methods = new HashSet<>(Arrays.asList(position.getClass().getMethods()));
methods.removeAll(Arrays.asList(Object.class.getMethods()));
for (Method method : methods) {
if (method.getName().startsWith("get") && method.getParameterTypes().length == 0) {
String name = Character.toLowerCase(method.getName().charAt(3)) + method.getName().substring(4);
try {
if (!method.getReturnType().equals(Map.class)) {
result.set(name, method.invoke(position));
} else {
for (Object key : ((Map) method.invoke(position)).keySet()) {
result.set((String) key, ((Map) method.invoke(position)).get(key));
}
}
} catch (IllegalAccessException | InvocationTargetException error) {
LOGGER.warn("Attribute reflection error", error);
}
}
}
return result;
}
代码示例来源:origin: stackoverflow.com
JexlEngine jexl = new JexlEngine();
Expression expression = jexl.createExpression("value 1 = #value1 value 2 = #value2");
int[] values = {1, 2};
JexlContext context = new MapContext();
for (int i = 0; i < values.length; i++) {
context.set("#value" + (i + 1), values[i]);
}
String result = (String)expression.evaluate(context);
代码示例来源:origin: stackoverflow.com
JexlEngine jexl = new JexlEngine();
jexl.setSilent(true);
jexl.setLenient(true);
Expression expression = jexl.createExpression("(a || b && (c && d))");
JexlContext jexlContext = new MapContext();
//b and c and d should pass
jexlContext.set("b",true);
jexlContext.set("c",true);
jexlContext.set("d",true);
assertTrue((Boolean)expression.evaluate(jexlContext));
jexlContext = new MapContext();
//b and c and NOT d should be false
jexlContext.set("b",true);
jexlContext.set("c",true);
//note this works without setting d to false on the context
//because null evaluates to false
assertFalse((Boolean)expression.evaluate(jexlContext));
代码示例来源:origin: org.opennms.features.measurements/org.opennms.features.measurements.impl
expressions.put(e.getLabel(), jexl.createExpression(e.getExpression()));
} catch (JexlException ex) {
throw new ExpressionException(ex, "Failed to parse expression label '{}'.", e.getLabel());
final JexlContext context = new MapContext(jexlValues);
jexl.getFunctions().put("jexl", jexlEvaluateFunctions);
Object derived = expressionEntry.getValue().evaluate(context);
double derivedAsDouble = Utils.toDouble(derived);
代码示例来源:origin: OpenNMS/newts
@Override
public double apply(double... ds) {
JexlContext jc = new MapContext();
for(int i = 0; i < labels.length; i++) {
jc.set(labels[i], ds[i]);
}
return ((Number)expr.evaluate(jc)).doubleValue();
}
};
代码示例来源:origin: jmxtrans/jmxtrans
/**
* Format the name for the given result.
*
* @param result - the result of a JMX query.
* @return String - the formatted string resulting from the expression, or null if the formatting fails.
*/
@Override
public String formatName(Result result) {
String formatted;
JexlContext context = new MapContext();
this.populateContext(context, result);
try {
formatted = (String) this.parsedExpr.evaluate(context);
} catch (JexlException jexlExc) {
LOG.error("error applying JEXL expression to query results", jexlExc);
formatted = null;
}
return formatted;
}
代码示例来源:origin: stackoverflow.com
// Create or retrieve a JexlEngine
JexlEngine jexl = new JexlEngine();
// Create an expression object
String valfromtextbox = "2(2*2)+5";
Expression e = jexl.createExpression( valfromtextbox );
// Create a context and add data
JexlContext jc = new MapContext();
// Now evaluate the expression, getting the result
Object o = e.evaluate(jc);
代码示例来源:origin: stackoverflow.com
// Assuming we have a JexlEngine instance initialized in our class named 'jexl':
// Create an expression object for our calculation
String calculateTax = "((G1 + G2 + G3) * 0.1) + G4";
Expression e = jexl.createExpression( calculateTax );
// populate the context
JexlContext context = new MapContext();
context.set("G1", businessObject.getTotalSales());
context.set("G2", taxManager.getTaxCredit(businessObject.getYear()));
context.set("G3", businessObject.getIntercompanyPayments());
context.set("G4", -taxManager.getAllowances());
// ...
// work it out
Float result = (Float)e.evaluate(context);
代码示例来源:origin: org.apache.commons/commons-configuration2
/**
* Creates a new {@code JexlContext} and initializes it with the variables
* managed by this Lookup object.
*
* @return the newly created context
*/
private JexlContext createContext()
{
final JexlContext ctx = new MapContext();
initializeContext(ctx);
return ctx;
}
代码示例来源:origin: stackoverflow.com
JexlEngine jexl = new JexlEngine();
Expression func = jexl.createExpression("x1*x2-x3");
MapContext mc = new MapContext();
mc.set("x1", 5);
mc.set("x2", 3);
mc.set("x3", 2);
System.out.println(func.evaluate(mc));
代码示例来源:origin: gooddata/GoodData-CL
int idx = 0;
String key = "";
JexlContext jc = new MapContext();
for (int i = 0; i < columns.size(); i++) {
SourceColumn c = columns.get(i);
key += row[idx] + "|";
jc.set(c.getName(), (row[idx] != null) ? (row[idx]) : (""));
idx++;
} else {
jc.set("IDENTITY", identity);
jc.set("GdcDateArithmetics", da);
Object result = expressions[i].evaluate(jc);
String value = (result != null) ? (result.toString()) : ("");
nrow.add(value);
代码示例来源:origin: stackoverflow.com
List<Shapes> allShapes = shapesDao.getAllShapes();
for (Shapes shapeobj : allShapes)
{
if(shapeobj.getShapeId() == id)
{
formula = shapeobj.getShapeFormula();
}
}
final JexlEngine jexl = new
JexlBuilder().cache(512).strict(true).silent(false).create();
String jexlExp = formula;
JexlExpression e = jexl.createExpression(formula);
JexlContext context = new MapContext();
for(int i = 0; i<params; i++)
{
for(int j=0;j<completed.length;j++)
{
System.out.println("-------------------------");
System.out.println(completed[j]);
System.out.println("-------------------------");
context.set(completed[j], request.getParameter(completed[j]));
}
}
Object o = e.evaluate(context);
代码示例来源:origin: stackoverflow.com
JexlEngine jexl = new JexlEngine(null, new NoStringCoercionArithmetic(), null, null);
jexl.setLenient(false);
jexl.setStrict(true);
JexlContext jc = new MapContext();
Expression exp = jexl.createExpression("\"1\"+\"1\"");
System.out.println(exp.evaluate(jc)); // expected result "11"
代码示例来源:origin: org.apache.xbean/xbean-blueprint
public JexlExpressionParser(final Map<String, Object> vars) {
if (vars == null) {
throw new IllegalArgumentException("vars");
}
engine = new JexlEngine();
jexl = new UnifiedJEXL(engine);
context = new MapContext(vars);
log.trace("Using variables: {}", vars);
}
代码示例来源:origin: stackoverflow.com
public class Formatter {
public static String format(String format, Object ... inputs) {
JexlContext context = new MapContext();
for (int i=0;i<inputs.length;i++) {
context.set("_" + (i+1), inputs[i] );
}
JexlEngine jexl = new JexlEngine();
UnifiedJEXL ujexl = new UnifiedJEXL(jexl);
UnifiedJEXL.Expression expr = ujexl.parse(format);
return expr.evaluate(context).toString();
}
}
代码示例来源:origin: stackoverflow.com
System.out.println("java.security.policy=" + System.getProperty("java.security.policy"));
System.setSecurityManager(new SecurityManager());
try {
Permissions perms = new Permissions();
perms.add(new RuntimePermission("accessDeclaredMembers"));
ProtectionDomain domain = new ProtectionDomain(new CodeSource( null, (Certificate[]) null ), perms );
AccessControlContext restrictedAccessControlContext = new AccessControlContext(new ProtectionDomain[] { domain } );
JexlEngine jexlEngine = new JexlEngine();
final Script finalExpression = jexlEngine.createScript(
"i = 0; intClazz = i.class; "
+ "clazz = intClazz.forName(\"java.lang.System\"); "
+ "m = clazz.methods; m[0].invoke(null, 1); c");
AccessController.doPrivileged(new PrivilegedExceptionAction<Object>() {
@Override
public Object run() throws Exception {
return finalExpression.execute(new MapContext());
}
}, restrictedAccessControlContext);
}
catch (Throwable ex) {
ex.printStackTrace();
}
代码示例来源:origin: org.apache.jmeter/ApacheJMeter_functions
JexlContext jc = new MapContext();
jc.set("log", log); //$NON-NLS-1$
jc.set("ctx", jmctx); //$NON-NLS-1$
jc.set("vars", vars); //$NON-NLS-1$
jc.set("props", JMeterUtils.getJMeterProperties()); //$NON-NLS-1$
Script e = getJexlEngine().createScript( exp );
Object o = e.execute(jc);
if (o != null)
代码示例来源:origin: neuland/jade4j
public Object evaluateExpression(String expression, JadeModel model) throws ExpressionException {
try {
expression = removeVar(expression);
if (isplusplus.matcher(expression).find()) {
expression = convertPlusPlusExpression(expression);
}
if (isminusminus.matcher(expression).find()) {
expression = convertMinusMinusExpression(expression);
}
Script e = jexl.createScript(expression);
Object evaluate = e.execute(new MapContext(model));
return evaluate;
} catch (Exception e) {
throw new ExpressionException(expression, e);
}
}
代码示例来源:origin: azkaban/azkaban
private void setCheckers(final Map<String, ConditionChecker> checkers) {
this.checkers = checkers;
for (final ConditionChecker checker : checkers.values()) {
this.context.set(checker.getId(), checker);
}
updateNextCheckTime();
}
内容来源于网络,如有侵权,请联系作者删除!