package org.batfish.datamodel;
import org.batfish.common.Pair;
import org.batfish.common.util.ComparableStructure;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
public class OspfNeighbor extends ComparableStructure<Pair<Ip, Ip>> {
public static final class OspfNeighborSummary
extends ComparableStructure<String> {
private static final String LOCAL_IP_VAR = "localIp";
private static final String REMOTE_IP_VAR = "remoteIp";
/**
*
*/
private static final long serialVersionUID = 1L;
private static final String VRF_VAR = "vrf";
private final Ip _localIp;
private final Ip _remoteIp;
private final String _vrf;
public OspfNeighborSummary(OspfNeighbor ospfNeighbor) {
super(ospfNeighbor.getOwner().getName() + ":"
+ ospfNeighbor._key.toString());
_localIp = ospfNeighbor._key.getFirst();
_remoteIp = ospfNeighbor._key.getSecond();
_vrf = ospfNeighbor._vrf;
}
@JsonCreator
public OspfNeighborSummary(@JsonProperty(NAME_VAR) String name,
@JsonProperty(LOCAL_IP_VAR) Ip localIp,
@JsonProperty(REMOTE_IP_VAR) Ip remoteIp,
@JsonProperty(VRF_VAR) String vrf) {
super(name);
_localIp = localIp;
_remoteIp = remoteIp;
_vrf = vrf;
}
@JsonProperty(LOCAL_IP_VAR)
public Ip getLocalIp() {
return _localIp;
}
@JsonProperty(REMOTE_IP_VAR)
public Ip getRemoteIp() {
return _remoteIp;
}
@JsonProperty(VRF_VAR)
public String getVrf() {
return _vrf;
}
}
/**
*
*/
private static final long serialVersionUID = 1L;
private long _area;
private Interface _iface;
private Configuration _owner;
private transient OspfNeighbor _remoteOspfNeighbor;
private String _vrf;
public OspfNeighbor(Pair<Ip, Ip> ipEdge) {
super(ipEdge);
}
public long getArea() {
return _area;
}
public Interface getIface() {
return _iface;
}
@JsonIgnore
public Ip getLocalIp() {
return _key.getFirst();
}
public Configuration getOwner() {
return _owner;
}
@JsonIgnore
public Ip getRemoteIp() {
return _key.getSecond();
}
public OspfNeighbor getRemoteOspfNeighbor() {
return _remoteOspfNeighbor;
}
public String getVrf() {
return _vrf;
}
public void setArea(long area) {
_area = area;
}
public void setIface(Interface iface) {
_iface = iface;
}
public void setInterface(Interface iface) {
_iface = iface;
}
public void setOwner(Configuration owner) {
_owner = owner;
}
public void setRemoteOspfNeighbor(OspfNeighbor remoteOspfNeighbor) {
_remoteOspfNeighbor = remoteOspfNeighbor;
}
public void setVrf(String vrf) {
_vrf = vrf;
}
}