use of org.antlr.v4.misc.EscapeSequenceParsing.Result in project oxTrust by GluuFederation.
the class ScimPersonFilterVisitor method visitATTR_OPER_EXPR.
/**
* {@InheritDoc}
* <p>
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*
* @param ctx
*/
@Override
public String visitATTR_OPER_EXPR(ScimFilterParser.ATTR_OPER_EXPRContext ctx) {
logger.info(" ScimPersonFilterVisitor.visitATTR_OPER_EXPR() ");
ParseTree parent = ctx.getParent();
while (parent != null) {
if (parent.getClass().getSimpleName().equalsIgnoreCase(ScimFilterParser.LBRAC_EXPR_RBRACContext.class.getSimpleName())) {
logger.info("********** PARENT = " + parent.getClass().getSimpleName());
String attrName = ((ScimFilterParser.LBRAC_EXPR_RBRACContext) parent).ATTRNAME() + "." + ctx.ATTRNAME().getText();
return attrOperCriteriaResolver(attrName, visit(ctx.operator()), visit(ctx.expression()));
} else {
parent = parent.getParent();
}
}
return attrOperCriteriaResolver(ctx.ATTRNAME().getText(), visit(ctx.operator()), visit(ctx.expression()));
}
use of org.antlr.v4.misc.EscapeSequenceParsing.Result in project oxTrust by GluuFederation.
the class GroupFilterVisitor method visitATTR_OPER_CRITERIA.
/**
* {@InheritDoc}
* <p>
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*
* @param ctx
*/
@Override
public String visitATTR_OPER_CRITERIA(ScimFilterParser.ATTR_OPER_CRITERIAContext ctx) {
logger.info(" GroupFilterVisitor.visitATTR_OPER_CRITERIA() ");
ParseTree parent = ctx.getParent();
while (parent != null) {
if (parent.getClass().getSimpleName().equalsIgnoreCase(ScimFilterParser.LBRAC_EXPR_RBRACContext.class.getSimpleName())) {
logger.info("********** PARENT = " + parent.getClass().getSimpleName());
String attrName = ((ScimFilterParser.LBRAC_EXPR_RBRACContext) parent).ATTRNAME() + "." + ctx.ATTRNAME().getText();
return attrOperCriteriaResolver(attrName, visit(ctx.operator()), visit(ctx.criteria()));
} else {
parent = parent.getParent();
}
}
return attrOperCriteriaResolver(ctx.ATTRNAME().getText(), visit(ctx.operator()), visit(ctx.criteria()));
}
use of org.antlr.v4.misc.EscapeSequenceParsing.Result in project oxTrust by GluuFederation.
the class GroupFilterVisitor method visitATTR_PR.
/**
* {@InheritDoc}
* <p>
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*
* @param ctx
*/
@Override
public String visitATTR_PR(ScimFilterParser.ATTR_PRContext ctx) {
logger.info(" GroupFilterVisitor.visitATTR_PR() ");
String attrName = ctx.ATTRNAME().getText();
ParseTree parent = ctx.getParent();
while (parent != null) {
if (parent.getClass().getSimpleName().equalsIgnoreCase(ScimFilterParser.LBRAC_EXPR_RBRACContext.class.getSimpleName())) {
logger.info("********** PARENT = " + parent.getClass().getSimpleName());
attrName = ((ScimFilterParser.LBRAC_EXPR_RBRACContext) parent).ATTRNAME() + "." + ctx.ATTRNAME().getText();
break;
} else {
parent = parent.getParent();
}
}
attrName = FilterUtil.stripScim2Schema(attrName);
String[] tokens = attrName.split("\\.");
String ldapAttributeName = getGroupLdapAttributeName(attrName);
logger.info(" ##### ATTRNAME = " + ctx.ATTRNAME().getText() + ", ldapAttributeName = " + ldapAttributeName);
String expr = evaluateIsPresentCriteria(ldapAttributeName, tokens);
logger.info(" ##### expr = " + expr);
return expr;
}
use of org.antlr.v4.misc.EscapeSequenceParsing.Result in project oxTrust by GluuFederation.
the class UserFilterVisitor method visitATTR_OPER_EXPR.
/**
* {@InheritDoc}
* <p>
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*
* @param ctx
*/
@Override
public String visitATTR_OPER_EXPR(ScimFilterParser.ATTR_OPER_EXPRContext ctx) {
logger.info(" UserFilterVisitor.visitATTR_OPER_EXPR() ");
ParseTree parent = ctx.getParent();
while (parent != null) {
if (parent.getClass().getSimpleName().equalsIgnoreCase(ScimFilterParser.LBRAC_EXPR_RBRACContext.class.getSimpleName())) {
logger.info("********** PARENT = " + parent.getClass().getSimpleName());
String attrName = ((ScimFilterParser.LBRAC_EXPR_RBRACContext) parent).ATTRNAME() + "." + ctx.ATTRNAME().getText();
return attrOperCriteriaResolver(attrName, visit(ctx.operator()), visit(ctx.expression()));
} else {
parent = parent.getParent();
}
}
return attrOperCriteriaResolver(ctx.ATTRNAME().getText(), visit(ctx.operator()), visit(ctx.expression()));
}
use of org.antlr.v4.misc.EscapeSequenceParsing.Result in project SSM by Intel-bigdata.
the class RuleStringParser method translate.
public TranslateResult translate() throws IOException {
InputStream input = new ByteArrayInputStream(rule.getBytes());
ANTLRInputStream antlrInput = new ANTLRInputStream(input);
SmartRuleLexer lexer = new SmartRuleLexer(antlrInput);
CommonTokenStream tokens = new CommonTokenStream(lexer);
SmartRuleParser parser = new SmartRuleParser(tokens);
parser.removeErrorListeners();
parser.addErrorListener(new SSMRuleErrorListener());
tree = parser.ssmrule();
if (parseErrors.size() > 0) {
throw new IOException(parserErrorMessage);
}
SmartRuleVisitTranslator visitor = new SmartRuleVisitTranslator(ctx);
try {
visitor.visit(tree);
} catch (RuntimeException e) {
throw new IOException(e.getMessage());
}
TranslateResult result = visitor.generateSql();
return result;
}
Aggregations