package org.batfish.datamodel.routing_policy.expr;
import java.util.List;
import org.batfish.common.BatfishException;
import org.batfish.datamodel.Ip;
import org.batfish.datamodel.routing_policy.Environment;
import com.fasterxml.jackson.annotation.JsonCreator;
public class IpNextHop extends NextHopExpr {
/**
*
*/
private static final long serialVersionUID = 1L;
private List<Ip> _ips;
@JsonCreator
private IpNextHop() {
}
public IpNextHop(List<Ip> ips) {
_ips = ips;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
IpNextHop other = (IpNextHop) obj;
if (_ips == null) {
if (other._ips != null) {
return false;
}
}
else if (!_ips.equals(other._ips)) {
return false;
}
return true;
}
public List<Ip> getIps() {
return _ips;
}
@Override
public Ip getNextHopIp(Environment environment) {
if (_ips.size() == 1) {
return _ips.get(0);
}
else {
throw new BatfishException(
"Do not currently support setting more than 1 next-hop-ip");
}
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((_ips == null) ? 0 : _ips.hashCode());
return result;
}
public void setIps(List<Ip> ips) {
_ips = ips;
}
}