package org.batfish.datamodel; import org.batfish.common.Pair; import org.batfish.datamodel.collections.NodeInterfacePair; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; public class Edge extends Pair<NodeInterfacePair, NodeInterfacePair> { private static final String INT1_VAR = "node1interface"; private static final String INT2_VAR = "node2interface"; private static final String NODE1_VAR = "node1"; private static final String NODE2_VAR = "node2"; private static final long serialVersionUID = 1L; public Edge(NodeInterfacePair p1, NodeInterfacePair p2) { super(p1, p2); } @JsonCreator public Edge(@JsonProperty(NODE1_VAR) String node1, @JsonProperty(INT1_VAR) String int1, @JsonProperty(NODE2_VAR) String node2, @JsonProperty(INT2_VAR) String int2) { super(new NodeInterfacePair(node1, int1), new NodeInterfacePair(node2, int2)); } @JsonProperty(INT1_VAR) public String getInt1() { return _first.getInterface(); } @JsonProperty(INT2_VAR) public String getInt2() { return _second.getInterface(); } @JsonIgnore public NodeInterfacePair getInterface1() { return _first; } @JsonIgnore public NodeInterfacePair getInterface2() { return _second; } @JsonProperty(NODE1_VAR) public String getNode1() { return _first.getHostname(); } @JsonProperty(NODE2_VAR) public String getNode2() { return _second.getHostname(); } @Override public String toString() { return "<" + getNode1() + ":" + getInt1() + ", " + getNode2() + ":" + getInt2() + ">"; } }