public static Object unwrap(final Object obj) { if (obj == null) { return null; } if (obj instanceof LiteralValue) { return ((LiteralValue)obj).getValue(); } return obj; }
@Override public String getStringRepresentation() { return String.valueOf(DELIMITER) + this.value.getValue().replace(String.valueOf(DELIMITER),("\\" + DELIMITER)) + String.valueOf(DELIMITER); }
public static boolean evaluateAsBoolean(final Object condition) { boolean result = true; if (condition == null) { result = false; } else { if (condition instanceof Boolean) { result = ((Boolean)condition).booleanValue(); } else if (condition instanceof Number) { if (condition instanceof BigDecimal) { result = (((BigDecimal) condition).compareTo(BigDecimal.ZERO) != 0); } else if (condition instanceof BigInteger) { result = !condition.equals(BigInteger.ZERO); } else { result = ((Number)condition).doubleValue() != 0.0; } } else if (condition instanceof Character) { result = ((Character) condition).charValue() != 0; } else if (condition instanceof String) { final String condStr = ((String)condition).trim().toLowerCase(); result = !("false".equals(condStr) || "off".equals(condStr) || "no".equals(condStr)); } else if (condition instanceof LiteralValue) { final String condStr = ((LiteralValue)condition).getValue().trim().toLowerCase(); result = !("false".equals(condStr) || "off".equals(condStr) || "no".equals(condStr)); } else { result = true; } } return result; }
private static Map<String,Object> createExecutedFragmentExpressionParameters( final IExpressionContext context, final AssignationSequence parameters, final boolean syntheticParameters, final StandardExpressionExecutionContext expContext) { if (parameters == null || parameters.size() == 0) { return null; } final Map<String,Object> parameterValues = new HashMap<String, Object>(parameters.size() + 2); final List<Assignation> assignationValues = parameters.getAssignations(); final int assignationValuesLen = assignationValues.size(); for (int i = 0; i < assignationValuesLen; i++) { final Assignation assignation = assignationValues.get(i); final IStandardExpression parameterNameExpr = assignation.getLeft(); final String parameterName; if (!syntheticParameters) { final Object parameterNameValue = parameterNameExpr.execute(context, expContext); parameterName = (parameterNameValue == null ? null : parameterNameValue.toString()); } else { // Parameters are synthetic so we know this is a mere literal like "_argX", no need to perform an exec parameterName = ((TextLiteralExpression)parameterNameExpr).getValue().getValue(); } final IStandardExpression parameterValueExpr = assignation.getRight(); final Object parameterValueValue = parameterValueExpr.execute(context, expContext); parameterValues.put(parameterName, parameterValueValue); } return parameterValues; }
public static Object unwrap(final Object obj) { if (obj == null) { return null; } if (obj instanceof LiteralValue) { return ((LiteralValue)obj).getValue(); } return obj; }
@Override public String getStringRepresentation() { return String.valueOf(DELIMITER) + this.value.getValue().replace(String.valueOf(DELIMITER),("\\" + DELIMITER)) + String.valueOf(DELIMITER); }
public static boolean evaluateAsBoolean(final Object condition) { boolean result = true; if (condition == null) { result = false; } else { if (condition instanceof Boolean) { result = ((Boolean)condition).booleanValue(); } else if (condition instanceof Number) { if (condition instanceof BigDecimal) { result = (((BigDecimal) condition).compareTo(BigDecimal.ZERO) != 0); } else if (condition instanceof BigInteger) { result = !condition.equals(BigInteger.ZERO); } else { result = ((Number)condition).doubleValue() != 0.0; } } else if (condition instanceof Character) { result = ((Character) condition).charValue() != 0; } else if (condition instanceof String) { final String condStr = ((String)condition).trim().toLowerCase(); result = !("false".equals(condStr) || "off".equals(condStr) || "no".equals(condStr)); } else if (condition instanceof LiteralValue) { final String condStr = ((LiteralValue)condition).getValue().trim().toLowerCase(); result = !("false".equals(condStr) || "off".equals(condStr) || "no".equals(condStr)); } else { result = true; } } return result; }