package org.ovirt.engine.core.common.businessentities.network; import java.util.List; import java.util.Objects; import javax.validation.constraints.NotNull; import org.ovirt.engine.core.common.businessentities.IVdcQueryable; import org.ovirt.engine.core.common.businessentities.Nameable; import org.ovirt.engine.core.common.utils.ToStringBuilder; import org.ovirt.engine.core.common.validation.annotation.Cidr; import org.ovirt.engine.core.common.validation.group.CreateEntity; import org.ovirt.engine.core.common.validation.group.RemoveEntity; public class ExternalSubnet implements IVdcQueryable, Nameable { private static final long serialVersionUID = 7357288865938773402L; @NotNull(groups = { RemoveEntity.class }) private String id; private String name; @Cidr(groups = { CreateEntity.class }) private String cidr; private IpVersion ipVersion; @NotNull(groups = { RemoveEntity.class }) private ProviderNetwork externalNetwork; private String gateway; private List<String> dnsServers; public String getId() { return id; } public void setId(String id) { this.id = id; } @Override public Object getQueryableId() { return getId(); } @Override public String getName() { return name; } public void setName(String value) { this.name = value; } public String getCidr() { return cidr; } public void setCidr(String cidr) { this.cidr = cidr; } public IpVersion getIpVersion() { return ipVersion; } public void setIpVersion(IpVersion ipVersion) { this.ipVersion = ipVersion; } public ProviderNetwork getExternalNetwork() { return externalNetwork; } public void setExternalNetwork(ProviderNetwork externalNetwork) { this.externalNetwork = externalNetwork; } public String getGateway() { return gateway; } public void setGateway(String gateway) { this.gateway = gateway; } public List<String> getDnsServers() { return dnsServers; } public void setDnsServers(List<String> dnsServers) { this.dnsServers = dnsServers; } @Override public String toString() { return ToStringBuilder.forInstance(this) .append("id", getId()) .append("name", getName()) .append("cidr", getCidr()) .append("ipVersion", getIpVersion()) .append("externalNetwork", getExternalNetwork()) .append("gateway", getGateway()) .append("dnsServers", getDnsServers()) .build(); } @Override public int hashCode() { return Objects.hash( cidr, externalNetwork, id, ipVersion, name, gateway, dnsServers ); } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (!(obj instanceof ExternalSubnet)) { return false; } ExternalSubnet other = (ExternalSubnet) obj; return Objects.equals(cidr, other.cidr) && Objects.equals(externalNetwork, other.externalNetwork) && Objects.equals(id, other.id) && ipVersion == other.ipVersion && Objects.equals(name, other.name) && Objects.equals(gateway, other.gateway) && Objects.equals(dnsServers, other.dnsServers); } public enum IpVersion { IPV4, IPV6 } }