package org.zstack.header.network.l3;
import org.apache.commons.net.util.SubnetUtils;
import org.zstack.header.vo.ForeignKey;
import org.zstack.header.vo.ForeignKey.ReferenceOption;
import org.zstack.header.vo.Index;
import org.zstack.header.vo.ResourceVO;
import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
import javax.persistence.PreUpdate;
import java.sql.Timestamp;
@MappedSuperclass
public class IpRangeAO extends ResourceVO {
@Column
@ForeignKey(parentEntityClass = L3NetworkEO.class, onDeleteAction = ReferenceOption.CASCADE)
private String l3NetworkUuid;
@Column
@Index
private String name;
@Column
private String description;
@Column
@Index
private String startIp;
@Column
@Index
private String endIp;
@Column
@Index
private String netmask;
@Column
@Index
private String gateway;
@Column
private String networkCidr;
@Column
private Timestamp createDate;
@Column
private Timestamp lastOpDate;
@PreUpdate
private void preUpdate() {
lastOpDate = null;
}
public String getNetworkCidr() {
if (networkCidr != null) {
return networkCidr;
}
SubnetUtils su = new SubnetUtils(gateway, netmask);
return su.getInfo().getCidrSignature();
}
public void setNetworkCidr(String networkCidr) {
this.networkCidr = networkCidr;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getStartIp() {
return startIp;
}
public void setStartIp(String startIp) {
this.startIp = startIp;
}
public String getEndIp() {
return endIp;
}
public void setEndIp(String endIp) {
this.endIp = endIp;
}
public String getNetmask() {
return netmask;
}
public void setNetmask(String netmask) {
this.netmask = netmask;
}
public String getGateway() {
return gateway;
}
public void setGateway(String gateway) {
this.gateway = gateway;
}
public String getL3NetworkUuid() {
return l3NetworkUuid;
}
public void setL3NetworkUuid(String l3NetworkUuid) {
this.l3NetworkUuid = l3NetworkUuid;
}
public Timestamp getCreateDate() {
return createDate;
}
public void setCreateDate(Timestamp createDate) {
this.createDate = createDate;
}
public Timestamp getLastOpDate() {
return lastOpDate;
}
public void setLastOpDate(Timestamp lastOpDate) {
this.lastOpDate = lastOpDate;
}
}