/**
* Abiquo community edition
* cloud management application for hybrid clouds
* Copyright (C) 2008-2010 - Abiquo Holdings S.L.
*
* This application is free software; you can redistribute it and/or
* modify it under the terms of the GNU LESSER GENERAL PUBLIC
* LICENSE as published by the Free Software Foundation under
* version 3 of the License
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* LESSER GENERAL PUBLIC LICENSE v.3 for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
package com.abiquo.abiserver.pojo.virtualimage;
import java.util.Date;
import com.abiquo.abiserver.business.hibernate.pojohb.virtualimage.VirtualimageHB;
import com.abiquo.abiserver.pojo.IPojo;
public class VirtualImage implements IPojo<VirtualimageHB>
{
/** Stateless virtual image code. */
public static final int STATELESS_IMAGE = 0;
/** Stateful virtual image code. */
public static final int STATEFUL_IMAGE = 1;
/* ------------- Public atributes ------------- */
private int id;
private String name;
private String description;
private String path;
private long hdRequired;
private int ramRequired;
private int cpuRequired;
private Category category;
private Repository repository;
private DiskFormatType diskFormatType;
private VirtualImage master;
private Integer idEnterprise;
private boolean shared;
private String ovfId;
private boolean stateful;
private boolean chefEnabled;
private String iconUrl;
/** Size of the file containing the Disk. in bytes */
private Long diskFileSize;
private int costCode;
private String creationUser;
private Date creationDate;
/* ------------- Constructor ------------- */
public VirtualImage()
{
name = "";
description = "";
path = "";
category = new Category();
repository = new Repository();
ovfId = "";
stateful = false;
shared = false;
costCode = 0;
}
public int getId()
{
return id;
}
public void setId(final int id)
{
this.id = id;
}
public String getName()
{
return name;
}
public void setName(final String name)
{
this.name = name;
}
public String getDescription()
{
return description;
}
public void setDescription(final String description)
{
this.description = description;
}
public String getPath()
{
return path;
}
public void setPath(final String path)
{
this.path = path;
}
public long getHdRequired()
{
return hdRequired;
}
public void setHdRequired(final long hdRequired)
{
this.hdRequired = hdRequired;
}
public int getRamRequired()
{
return ramRequired;
}
public void setRamRequired(final int ramRequired)
{
this.ramRequired = ramRequired;
}
public int getCpuRequired()
{
return cpuRequired;
}
public void setCpuRequired(final int cpuRequired)
{
this.cpuRequired = cpuRequired;
}
public Category getCategory()
{
return category;
}
public void setCategory(final Category category)
{
this.category = category;
}
public Repository getRepository()
{
return repository;
}
public void setRepository(final Repository repository)
{
this.repository = repository;
}
public DiskFormatType getDiskFormatType()
{
return diskFormatType;
}
public void setDiskFormatType(final DiskFormatType diskFormatType)
{
this.diskFormatType = diskFormatType;
}
public VirtualImage getMaster()
{
return master;
}
public void setMaster(final VirtualImage master)
{
this.master = master;
}
public Integer getIdEnterprise()
{
return idEnterprise;
}
public void setIdEnterprise(final Integer idEnterprise)
{
this.idEnterprise = idEnterprise;
}
public String getOvfId()
{
return ovfId;
}
public void setOvfId(final String ovfId)
{
this.ovfId = ovfId;
}
public boolean isStateful()
{
return stateful;
}
public void setStateful(final boolean stateful)
{
this.stateful = stateful;
}
public Long getDiskFileSize()
{
return diskFileSize;
}
public void setDiskFileSize(final Long diskFileSize)
{
this.diskFileSize = diskFileSize;
}
public boolean isImageStateful()
{
return isStateful();
}
public boolean isManaged()
{
return getRepository() != null;
}
public boolean isShared()
{
return shared;
}
public void setShared(final boolean shared)
{
this.shared = shared;
}
public boolean isChefEnabled()
{
return chefEnabled;
}
public void setChefEnabled(final boolean chefEnabled)
{
this.chefEnabled = chefEnabled;
}
public int getCostCode()
{
return costCode;
}
public void setCostCode(final int costCode)
{
this.costCode = costCode;
}
public String getCreationUser()
{
return creationUser;
}
public void setCreationUser(final String creationUser)
{
this.creationUser = creationUser;
}
public Date getCreationDate()
{
return creationDate;
}
public void setCreationDate(final Date creationDate)
{
this.creationDate = creationDate;
}
@Override
public VirtualimageHB toPojoHB()
{
VirtualimageHB virtualImageHB = new VirtualimageHB();
virtualImageHB.setIdImage(id);
if (repository != null)
{
virtualImageHB.setRepository(repository.toPojoHB());
}
else
{
virtualImageHB.setRepository(null);
}
virtualImageHB.setIconUrl(iconUrl);
virtualImageHB.setCategory(category.toPojoHB());
virtualImageHB.setName(getName());
virtualImageHB.setDescription(description);
virtualImageHB.setPathName(getPath());
virtualImageHB.setHdRequired(hdRequired);
virtualImageHB.setRamRequired(ramRequired);
virtualImageHB.setCpuRequired(cpuRequired);
virtualImageHB.setType(diskFormatType.toEnum());
virtualImageHB.setStateful(isStateful());
virtualImageHB.setDiskFileSize(diskFileSize);
virtualImageHB.setChefEnabled(chefEnabled);
virtualImageHB.setShared(isShared());
if (master != null)
{
virtualImageHB.setMaster(master.toPojoHB());
}
if (idEnterprise != null && idEnterprise != 0)
{
virtualImageHB.setIdEnterprise(idEnterprise);
}
virtualImageHB.setOvfId(ovfId);
virtualImageHB.setCostCode(costCode);
virtualImageHB.setCreationUser(creationUser);
virtualImageHB.setCreationDate(creationDate);
return virtualImageHB;
}
public void convertPathToVhd()
{
String path = getPath();
if (!path.endsWith(".vhd"))
{
setPath(path + ".vhd");
}
}
public void setIconUrl(final String iconUrl)
{
this.iconUrl = iconUrl;
}
public String getIconUrl()
{
return iconUrl;
}
}