public final ValueContext value() throws RecognitionException { ValueContext _localctx = new ValueContext(_ctx, getState()); enterRule(_localctx, 10, RULE_value); try {
if (context.IDENTIFIER() != null) { final String name = context.getText(); final Class<?> type = attributes.getType(name); final FilterParser.ConstantContext constant = context.constant(); if (constant.STRING() != null) {
private Comparable getValue(FilterParser.ValueContext context) { if (context.IDENTIFIER() != null) { // identifier final String identifier = context.IDENTIFIER().getText(); final Class<?> type = attributes.getType(identifier); if (type == String.class) { return attributes.getString(identifier); } else if (type == Long.class) { return attributes.getNumber(identifier); } else if (type == Boolean.class) { return attributes.getBoolean(identifier); } return null; } else { // constant final FilterParser.ConstantContext constant = context.constant(); if (constant.STRING() != null) { final String value = constant.STRING().getText(); return value.length() == 2 ? "" : value.substring(1, value.length() - 1); } else if (constant.NUMBER() != null) { return Long.parseLong(constant.NUMBER().getText()); } else if (constant.BOOLEAN() != null) { return Boolean.parseBoolean(constant.BOOLEAN().getText()); } return null; } }
private Class<?> getType(FilterParser.ValueContext context) { if (context.IDENTIFIER() != null) { // identifier return attributes.getType(context.IDENTIFIER().getText()); } else { // constant final FilterParser.ConstantContext constant = context.constant(); if (constant.STRING() != null) { return String.class; } else if (constant.NUMBER() != null) { return Long.class; } else if (constant.BOOLEAN() != null) { return Boolean.class; } return null; } }
public TerminalNode IDENTIFIER() { return getToken(FilterParser.IDENTIFIER, 0); } public ValueContext(ParserRuleContext parent, int invokingState) {
public ConstantContext constant() { return getRuleContext(ConstantContext.class,0); } public TerminalNode IDENTIFIER() { return getToken(FilterParser.IDENTIFIER, 0); }