Package com.trendmicro.tme.grapheditor

Source Code of com.trendmicro.tme.grapheditor.GraphModel

package com.trendmicro.tme.grapheditor;

import java.util.HashSet;
import java.util.Set;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;

import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;
import com.trendmicro.codi.CODIException;
import com.trendmicro.codi.ZNode;
import com.trendmicro.tme.grapheditor.ProcessorModel.RenderView;

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement
public class GraphModel {
    private String name;
    private Set<String> processors = new HashSet<String>();
    private Set<String> rules = new HashSet<String>();
    private boolean enabled = false;
    private Set<String> admins = new HashSet<String>();

    public GraphModel() {
    }

    public GraphModel(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public Set<String> getProcessors() {
        return processors;
    }

    public void addProcessor(String processor) {
        processors.add(processor);
    }

    public void removeProcessor(String processor) {
        processors.remove(processor);
    }

    public Set<String> getAdmins() {
        return admins;
    }

    public void addAdmin(String admin) {
        admins.add(admin);
    }

    public void removeAdmin(String admin) {
        admins.remove(admin);
    }

    public void addRule(String rule) {
        rules.add(rule);
    }

    public void removeRule(String rule) {
        rules.remove(rule);
    }

    public Set<String> getRules() {
        return rules;
    }

    public boolean isEnabled() {
        return enabled;
    }

    public void setEnabled(boolean enabled) {
        this.enabled = enabled;
    }

    public String toSubgraph() throws JsonSyntaxException, CODIException {
        StringBuilder sb = new StringBuilder();

        for(String processorName : processors) {
            ZNode node = new ZNode("/global/graph/processor/" + processorName);
            ProcessorModel processor = new Gson().fromJson(node.getContentString(), ProcessorModel.class);
            sb.append(processor.toSubgraph(RenderView.GRAPH_EDITOR));
        }

        for(String rule : rules) {
            String[] tmpArray = rule.split("-");
            String src = tmpArray[0];
            String dst = tmpArray[1];
            sb.append(String.format("\"%s\" -> \"%s\" [style=%s label=x href=\"%s\"];\n", src, dst, enabled ? "solid": "dashed", String.format("javascript:remove_rule('%s');", rule.replaceAll("\\\"", "\\\\\""))));
        }

        return sb.toString();
    }
}
TOP

Related Classes of com.trendmicro.tme.grapheditor.GraphModel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.