if(TokenConstant.isExpression(aggregatedField)){ try { String expr = TokenConstant.parseExpressionContent(aggregatedField); values.add(ExpressionParser.eval(expr, entity)); }catch (Exception ex){
String alias = expMatcher.group(3); try { String exprContent = TokenConstant.parseExpressionContent(expr); _outputFields.addAll(ExpressionParser.parse(exprContent).getDependentFields()); if(alias!=null) {
@Test public void testIsExpression() { Assert.assertTrue(TokenConstant.isExpression("EXP{ count }")); Assert.assertFalse(TokenConstant.isExpression("count")); } }
@Test public void testParseExpressionContent() { String expression = "EXP{ @fieldName /2 } AS a"; Assert.assertEquals(" @fieldName /2 ", TokenConstant.parseExpressionContent(expression)); expression = "EXP{ @fieldName /2 } a"; Assert.assertEquals(" @fieldName /2 ", TokenConstant.parseExpressionContent(expression)); expression = "EXP{ @fieldName /2 }"; Assert.assertEquals(" @fieldName /2 ", TokenConstant.parseExpressionContent(expression)); } }
try { if(_outputFields == null) _outputFields = new ArrayList<String>(); if(TokenConstant.isExpression(aggField)) { _outputFields.addAll(ExpressionParser.parse(TokenConstant.parseExpressionContent(aggField)).getDependentFields()); }else{ _outputFields.add(aggField);
if (entry.getValue() != null) { logTags.put(entry.getKey(), new String(entry.getValue())); } else if (TokenConstant.isExpression(entry.getKey())) { if (doubleMap == null) { doubleMap = EntityQualifierUtils.bytesMapToDoubleMap(allQualifierValues, ed); String expression = TokenConstant.parseExpressionContent(entry.getKey()); if (extra == null) { extra = new HashMap<String, Object>();
if (entry.getValue() != null) { logTags.put(entry.getKey(), new String(entry.getValue())); }else if (TokenConstant.isExpression(entry.getKey())){ if(doubleMap == null) doubleMap = EntityQualifierUtils.bytesMapToDoubleMap(allQualifierValues, ed); String expression = TokenConstant.parseExpressionContent(entry.getKey()); if (extra == null) extra = new HashMap<String, Object>();
if(LOG.isDebugEnabled()) LOG.debug("EntitySerDeser of field "+aggregatedField+" is not IntSerDeser or LongSerDeser or DoubleSerDeser or IntArraySerDeser or DoubleArraySerDeser, default as 0.0"); }else if(TokenConstant.isExpression(aggregatedField)){ String expression = TokenConstant.parseExpressionContent(aggregatedField); try { Map<String,Double> doubleMap = EntityQualifierUtils.bytesMapToDoubleMap(values, entityDefinition);