All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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