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

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;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy