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

io.lightflame.routerules.RouteRules Maven / Gradle / Ivy

The newest version!
package io.lightflame.routerules;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.UUID;

/**
 * RulesStore
 */
public class RouteRules {

    List> ruleList = new ArrayList<>();
    private UUID key;

    public RouteRules(UUID k) {
        this.key = k;
    }

    public RouteRules() {
        this.key = UUID.randomUUID();
    }

    public UUID getKey(){
        return this.key;
    }

    void setKey(UUID k){
        this.key = k;
    }

    public Rule getRule(RuleKind rk) {
        Optional> ruleOpt = ruleList.stream().filter(x -> x.kind() == rk).findFirst();
        return ruleOpt.orElse(null);
    }

    

    public RouteRules addRule(Rule rule){
        ruleList.add(rule);
        return this;
    }

    public RouteRules addRules(Rule[] rules){
        ruleList.addAll(Arrays.asList(rules));
        return this;
    }

    public RouteRules addRules(List> rules){
        ruleList.addAll(rules);
        return this;
    }

    int score(){
        int score = 0;
        for (Rule rule : ruleList){
            score += rule.score();
        }
        return score;
    }

    boolean match(E income){            
        for (Rule rule : ruleList) {
            if (!rule.isValid(income)){
                return false;
            }
        }
        return true;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy