package com.plectix.simulator.staticanalysis.contactmap; import java.util.LinkedHashSet; import java.util.Set; import com.plectix.simulator.staticanalysis.abstracting.AbstractLinkState; import com.plectix.simulator.staticanalysis.abstracting.AbstractSite; public final class ContactMapAbstractEdge { private AbstractSite sourceVertex; private final String targetVertexSiteName; private final String targetVertexAgentName; private final Set<Integer> rules; public ContactMapAbstractEdge(AbstractSite sourceVertex) { this.sourceVertex = sourceVertex; AbstractLinkState ls = sourceVertex.getLinkState(); this.targetVertexAgentName = ls.getAgentName(); this.targetVertexSiteName = ls.getConnectedSiteName(); this.rules = new LinkedHashSet<Integer>(); } public final AbstractSite getSourceVertex() { return sourceVertex; } public final String getTargetVertexSiteName() { return targetVertexSiteName; } public final String getTargetVertexAgentName() { return targetVertexAgentName; } public final Set<Integer> getRules() { return rules; } public final boolean equalz(ContactMapAbstractEdge edge){ if (this == edge) { return true; } if (edge == null) { return false; } if (!this.sourceVertex.hasSimilarName(edge.getSourceVertex())) return false; if (!this.targetVertexAgentName.equals(edge.targetVertexAgentName)) return false; if (!this.targetVertexSiteName.equals(edge.targetVertexSiteName)) return false; return true; } public final void addRules(int ruleId){ rules.add(ruleId); } }