io.bitsensor.lib.entity.Filter Maven / Gradle / Ivy
package io.bitsensor.lib.entity;
import io.bitsensor.proto.shaded.com.google.gson.JsonObject;
import io.bitsensor.proto.shaded.com.google.re2j.Pattern;
import java.util.ArrayList;
import java.util.List;
public class Filter {
public static final String RULE = "rule";
public static final String DESCRIPTION = "description";
public static final String TAGS = "tags";
public static final String IMPACT = "impact";
private String mRule = "";
private String mDescription;
private List mTags = new ArrayList<>();
private int mImpact;
private Pattern mPattern;
public Filter(String rule, String description, List tags, int impact) {
mRule = rule;
mDescription = description;
mTags = tags;
mImpact = impact;
mPattern = Pattern.compile(rule, Pattern.DOTALL | Pattern.CASE_INSENSITIVE);
}
public Filter(JsonObject json) {
if (json.has(RULE)) {
mRule = json.get(RULE).getAsString();
}
if (json.has(DESCRIPTION)) {
mDescription = json.get(DESCRIPTION).getAsString();
}
if (json.has(TAGS)) {
json.getAsJsonArray(TAGS).forEach(tag -> addTag(tag.getAsString()));
}
if (json.has(IMPACT)) {
mImpact = json.get(IMPACT).getAsInt();
}
mPattern = Pattern.compile(mRule, Pattern.DOTALL | Pattern.CASE_INSENSITIVE);
}
public String getRule() {
return mRule;
}
public void setRule(String rule) {
mRule = rule;
}
public String getDescription() {
return mDescription;
}
public void setDescription(String description) {
mDescription = description;
}
public List getTags() {
return mTags;
}
public void addTag(String tag) {
mTags.add(tag);
}
public int getImpact() {
return mImpact;
}
public void setImpact(int impact) {
mImpact = impact;
}
public Pattern getPattern() {
return mPattern;
}
}