package org.zstack.header.storage.primary; import org.zstack.header.image.ImageConstant.ImageMediaType; import org.zstack.header.vo.ForeignKey; import org.zstack.header.vo.ForeignKey.ReferenceOption; import org.zstack.header.vo.ShadowEntity; import javax.persistence.*; import java.sql.Timestamp; @Entity @Table public class ImageCacheVO implements ShadowEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column private long id; @Column @ForeignKey(parentEntityClass = PrimaryStorageEO.class, onDeleteAction = ReferenceOption.CASCADE) private String primaryStorageUuid; @Column private String imageUuid; @Column private String installUrl; @Column @Enumerated(EnumType.STRING) private ImageMediaType mediaType; @Column private long size; @Column @Enumerated(EnumType.STRING) private ImageCacheState state = ImageCacheState.ready; @Column private String md5sum; @Column private Timestamp createDate; @Column private Timestamp lastOpDate; @Transient private ImageCacheVO shadow; public ImageCacheVO getShadow() { return shadow; } @PreUpdate private void preUpdate() { lastOpDate = null; } public long getId() { return id; } public void setId(long id) { this.id = id; } public String getPrimaryStorageUuid() { return primaryStorageUuid; } public void setPrimaryStorageUuid(String primaryStorageUuid) { this.primaryStorageUuid = primaryStorageUuid; } public String getImageUuid() { return imageUuid; } public void setImageUuid(String imageUuid) { this.imageUuid = imageUuid; } public String getInstallUrl() { return installUrl; } public void setInstallUrl(String installUrl) { this.installUrl = installUrl; } public long getSize() { return size; } public void setSize(long size) { this.size = size; } public String getMd5sum() { return md5sum; } public void setMd5sum(String md5sum) { this.md5sum = md5sum; } 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; } public ImageMediaType getMediaType() { return mediaType; } public void setMediaType(ImageMediaType type) { this.mediaType = type; } public ImageCacheState getState() { return state; } public void setState(ImageCacheState state) { this.state = state; } @Override public void setShadow(Object o) { shadow = (ImageCacheVO) o; } }