package org.batfish.datamodel; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; public class BgpProcessDiff { private static final String IN_AFTER_ONLY_VAR = "inAfterOnly"; private static final String IN_BEFORE_ONLY_VAR = "inBeforeOnly"; private Boolean _inAfterOnly; private Boolean _inBeforeOnly; private NeighborsDiff _neighborsDiff; @JsonCreator public BgpProcessDiff() { } public BgpProcessDiff(BgpProcess before, BgpProcess after) { if (before != null && after == null) { _inBeforeOnly = true; } else if (before == null && after != null) { _inAfterOnly = true; } else if (before != null && after != null) { _neighborsDiff = new NeighborsDiff(before.getNeighbors(), after.getNeighbors()); if (_neighborsDiff.isEmpty()) { _neighborsDiff = null; } } } @JsonProperty(IN_AFTER_ONLY_VAR) public Boolean getInAfterOnly() { return _inAfterOnly; } @JsonProperty(IN_BEFORE_ONLY_VAR) public Boolean getInBeforeOnly() { return _inBeforeOnly; } @JsonIgnore public boolean isEmpty() { return _neighborsDiff == null && _inBeforeOnly == null && _inAfterOnly == null; } @JsonProperty(IN_AFTER_ONLY_VAR) public void setInAfterOnly(Boolean inAfterOnly) { _inAfterOnly = inAfterOnly; } @JsonProperty(IN_BEFORE_ONLY_VAR) public void setInBeforeOnly(Boolean inBeforeOnly) { _inBeforeOnly = inBeforeOnly; } }