@Override public String toString() { StringBuilder sb = new StringBuilder(); for(AttributeNode.Item item : attribute.getItems()) { sb.append(item.getName()).append("."); } sb.deleteCharAt(sb.length() - 1); return sb.toString() + ":" + comparison.getOperator() + now; }
public void visit(AttributeNode node) { if (state == null ) return; if (expressionMap.containsKey(node.getValue().toString())) { throw new IllegalArgumentException("Specifying multiple document types is not allowed"); } for (AttributeNode.Item item : node.getItems()) { if (item.getType() != AttributeNode.Item.ATTRIBUTE) { throw new IllegalArgumentException("Only attribute items are supported"); } } state.attribute = node; }
item = new AttributeNode.Item(token.image); switch (jj_nt.kind) { case LBRACE:{ jj_consume_token(LBRACE); jj_consume_token(RBRACE); item.setType(AttributeNode.Item.FUNCTION); break;
public Object evaluate(Context context) { String pos = value.toString(); Object obj = value.evaluate(context); StringBuilder builder = new StringBuilder(); for (Item item : items) { if (obj == null) { throw new IllegalStateException("Can not invoke '" + item + "' on '" + pos + "' because that term " + "evaluated to null."); } if (item.getType() != Item.FUNCTION) { if (builder.length() > 0) { builder.append("."); } builder.append(item.getName()); } else { if (builder.length() > 0) { obj = evaluateFieldPath(builder.toString(), obj); builder = new StringBuilder(); } obj = evaluateFunction(item.getName(), obj); } pos = pos + "." + item; } if (builder.length() > 0) { obj = evaluateFieldPath(builder.toString(), obj); } return obj; }