package org.zstack.header.storage.primary;
import org.zstack.header.vo.ForeignKey;
import org.zstack.header.vo.ForeignKey.ReferenceOption;
import org.zstack.header.vo.Index;
import org.zstack.header.vo.ShadowEntity;
import javax.persistence.*;
import java.sql.Timestamp;
/**
*/
@Entity
@Table
public class PrimaryStorageCapacityVO implements ShadowEntity {
@Column
@Id
@ForeignKey(parentEntityClass = PrimaryStorageEO.class, onDeleteAction = ReferenceOption.CASCADE)
private String uuid;
@Column
@Index
private long totalCapacity;
@Column
@Index
private long availableCapacity;
@Column
@Index
private long totalPhysicalCapacity;
@Column
@Index
private long availablePhysicalCapacity;
@Column
private Long systemUsedCapacity;
@Column
private Timestamp createDate;
@Column
private Timestamp lastOpDate;
@Transient
private PrimaryStorageCapacityVO shadow;
public PrimaryStorageCapacityVO getShadow() {
return shadow;
}
@PreUpdate
private void preUpdate() {
lastOpDate = null;
}
public Long getSystemUsedCapacity() {
return systemUsedCapacity;
}
public void setSystemUsedCapacity(Long systemUsedCapacity) {
this.systemUsedCapacity = systemUsedCapacity;
}
public long getTotalPhysicalCapacity() {
return totalPhysicalCapacity;
}
public void setTotalPhysicalCapacity(long totalPhysicalCapacity) {
this.totalPhysicalCapacity = totalPhysicalCapacity;
}
public long getAvailablePhysicalCapacity() {
return availablePhysicalCapacity;
}
public void setAvailablePhysicalCapacity(long availablePhysicalCapacity) {
this.availablePhysicalCapacity = availablePhysicalCapacity;
}
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
public long getTotalCapacity() {
return totalCapacity;
}
public void setTotalCapacity(long totalCapacity) {
this.totalCapacity = totalCapacity;
}
public long getAvailableCapacity() {
return availableCapacity;
}
public void setAvailableCapacity(long availableCapacity) {
this.availableCapacity = availableCapacity;
}
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;
}
@Override
public void setShadow(Object o) {
shadow = (PrimaryStorageCapacityVO) o;
}
}