package org.batfish.representation.host;
import java.io.Serializable;
import java.util.Set;
import java.util.TreeSet;
import org.batfish.common.Warnings;
import org.batfish.datamodel.Configuration;
import org.batfish.datamodel.Interface;
import org.batfish.datamodel.Ip;
import org.batfish.datamodel.Prefix;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
public class HostInterface implements Serializable {
private static final String BANDWIDTH_VAR = "bandwidth";
private static final String GATEWAY_VAR = "gateway";
private static final String NAME_VAR = "name";
private static final String OTHER_PREFIXES_VAR = "otherPrefixes";
private static final String PREFIX_VAR = "prefix";
/**
*
*/
private static final long serialVersionUID = 1L;
private Double _bandwidth = 1000 * 1000 * 1000.0; // default is 1 Gbps
private Ip _gateway;
private String _name;
private Set<Prefix> _otherPrefixes;
private Prefix _prefix;
@JsonCreator
public HostInterface(@JsonProperty(NAME_VAR) String name) {
_name = name;
_otherPrefixes = new TreeSet<>();
}
@JsonProperty(BANDWIDTH_VAR)
public Double getBandwidth() {
return _bandwidth;
}
@JsonProperty(GATEWAY_VAR)
public Ip getGateway() {
return _gateway;
}
@JsonProperty(NAME_VAR)
public String getName() {
return _name;
}
@JsonProperty(OTHER_PREFIXES_VAR)
public Set<Prefix> getOtherPrefixes() {
return _otherPrefixes;
}
@JsonProperty(PREFIX_VAR)
public Prefix getPrefix() {
return _prefix;
}
@JsonProperty(BANDWIDTH_VAR)
public void setBandwidth(Double bandwidth) {
_bandwidth = bandwidth;
}
@JsonProperty(GATEWAY_VAR)
public void setGateway(Ip gateway) {
_gateway = gateway;
}
@JsonProperty(OTHER_PREFIXES_VAR)
public void setOtherPrefixes(Set<Prefix> otherPrefixes) {
_otherPrefixes = otherPrefixes;
}
@JsonProperty(PREFIX_VAR)
public void setPrefix(Prefix prefix) {
_prefix = prefix;
}
public Interface toInterface(Configuration configuration,
Warnings warnings) {
Interface iFace = new Interface(_name, configuration);
iFace.setBandwidth(_bandwidth);
iFace.setPrefix(_prefix);
iFace.getAllPrefixes().add(_prefix);
iFace.getAllPrefixes().addAll(_otherPrefixes);
return iFace;
}
}