com.yahoo.elide.modelconfig.validator.PermissionExpressionVisitor Maven / Gradle / Ivy
/*
* Copyright 2020, Yahoo Inc.
* Licensed under the Apache License, Version 2.0
* See LICENSE file in project root for terms.
*/
package com.yahoo.elide.modelconfig.validator;
import com.yahoo.elide.generated.parsers.ExpressionBaseVisitor;
import com.yahoo.elide.generated.parsers.ExpressionParser;
import lombok.AllArgsConstructor;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
/**
* Expression Visitor.
*/
@AllArgsConstructor
public class PermissionExpressionVisitor extends ExpressionBaseVisitor> {
@Override
public Set visitNOT(ExpressionParser.NOTContext ctx) {
return visit(ctx.expression());
}
@Override
public Set visitOR(ExpressionParser.ORContext ctx) {
Set visit = visit(ctx.left);
visit.addAll(visit(ctx.right));
return visit;
}
@Override
public Set visitAND(ExpressionParser.ANDContext ctx) {
Set visit = visit(ctx.left);
visit.addAll(visit(ctx.right));
return visit;
}
@Override
public Set visitPAREN(ExpressionParser.PARENContext ctx) {
return visit(ctx.expression());
}
@Override
public Set visitPermissionClass(ExpressionParser.PermissionClassContext ctx) {
return new HashSet<>(Arrays.asList(ctx.getText()));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy