![JAR search and dependency download from the Maven repository](/logo.png)
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