package org.batfish.datamodel;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
public class VrfDiff extends ConfigDiffElement {
private static final String AS_PATH_ACCESS_LISTS_DIFF_VAR = "asPathAccessListsDiff";
private static final String COMMUNITY_LISTS_DIFF_VAR = "comunityListsDiff";
private static final String INTERFACES_DIFF_VAR = "interfacesDiff";
private static final String IP_ACCESS_LISTS_DIFF_VAR = "ipAccessListsDiff";
private static final String ROUTE_FILTER_LISTS_DIFF_VAR = "routeFilterListsDiff";
private static final String ROUTING_POLICIES_DIFF_VAR = "routingPoliciesDiff";
private static final String VRFS_DIFF_VAR = "vrfsDiff";
private AsPathAccessListsDiff _asPathAccessListsDiff;
private BgpProcessDiff _bgpProcessDiff;
private CommunityListsDiff _communityListsDiff;
private InterfacesDiff _interfacesDiff;
private IpAccessListsDiff _ipAccessListsDiff;
private RouteFilterListsDiff _routeFilterListsDiff;
private RoutingPoliciesDiff _routingPoliciesDiff;
private VrfsDiff _vrfsDiff;
@JsonCreator()
private VrfDiff() {
}
public VrfDiff(Vrf before, Vrf after) {
_bgpProcessDiff = new BgpProcessDiff(before.getBgpProcess(),
after.getBgpProcess());
if (_bgpProcessDiff.isEmpty()) {
_bgpProcessDiff = null;
}
}
@JsonProperty(AS_PATH_ACCESS_LISTS_DIFF_VAR)
public AsPathAccessListsDiff getAsPathAccessListsDiff() {
return _asPathAccessListsDiff;
}
@JsonProperty(COMMUNITY_LISTS_DIFF_VAR)
public CommunityListsDiff getCommunityListsDiff() {
return _communityListsDiff;
}
@JsonProperty(INTERFACES_DIFF_VAR)
public InterfacesDiff getInterfacesDiff() {
return _interfacesDiff;
}
@JsonProperty(IP_ACCESS_LISTS_DIFF_VAR)
public IpAccessListsDiff getIpAccessListsDiff() {
return _ipAccessListsDiff;
}
@JsonProperty(ROUTE_FILTER_LISTS_DIFF_VAR)
public RouteFilterListsDiff getRouteFilterListsDiff() {
return _routeFilterListsDiff;
}
@JsonProperty(ROUTING_POLICIES_DIFF_VAR)
public RoutingPoliciesDiff getRoutingPoliciesDiff() {
return _routingPoliciesDiff;
}
@JsonProperty(VRFS_DIFF_VAR)
public VrfsDiff getVrfsDiff() {
return _vrfsDiff;
}
@Override
@JsonIgnore
public boolean isEmpty() {
return _asPathAccessListsDiff == null && _communityListsDiff == null
&& _interfacesDiff == null && _ipAccessListsDiff == null
&& _vrfsDiff == null && _routeFilterListsDiff == null
&& _routingPoliciesDiff == null;
}
@JsonProperty(AS_PATH_ACCESS_LISTS_DIFF_VAR)
public void setAsPathAccessListsDiff(
AsPathAccessListsDiff asPathAccessListsDiff) {
_asPathAccessListsDiff = asPathAccessListsDiff;
}
@JsonProperty(COMMUNITY_LISTS_DIFF_VAR)
public void setCommunityListsDiff(CommunityListsDiff communityListsDiff) {
_communityListsDiff = communityListsDiff;
}
@JsonProperty(INTERFACES_DIFF_VAR)
public void setInterfacesDiff(InterfacesDiff interfacesDiff) {
_interfacesDiff = interfacesDiff;
}
@JsonProperty(IP_ACCESS_LISTS_DIFF_VAR)
public void setIpAccessListsDiff(IpAccessListsDiff ipAccessListsDiff) {
_ipAccessListsDiff = ipAccessListsDiff;
}
@JsonProperty(ROUTE_FILTER_LISTS_DIFF_VAR)
public void setRouteFilterListsDiff(
RouteFilterListsDiff routeFilterListsDiff) {
_routeFilterListsDiff = routeFilterListsDiff;
}
@JsonProperty(ROUTING_POLICIES_DIFF_VAR)
public void setRoutingPoliciesDiff(RoutingPoliciesDiff routingPoliciesDiff) {
_routingPoliciesDiff = routingPoliciesDiff;
}
@JsonProperty(VRFS_DIFF_VAR)
public void setVrfsDiff(VrfsDiff vrfsDiff) {
_vrfsDiff = vrfsDiff;
}
}