/**
* 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.appliancemanager.transport;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import org.apache.commons.lang.StringUtils;
import com.abiquo.model.enumerator.DiskFormatType;
import com.abiquo.server.core.appslibrary.TemplateDefinition;
import com.abiquo.server.core.appslibrary.TemplateDefinitionDto;
import com.abiquo.server.core.enterprise.Enterprise;
import com.abiquo.server.core.infrastructure.Datacenter;
/**
* The materialization of an {@link TemplateDefinition} of a given {@link Datacenter} and
* {@link Enterprise} .
*/
@XmlType
@XmlRootElement(name = "template")
public class TemplateDto extends TemplateDefinitionDto
{
private static final long serialVersionUID = 6994372893155355385L;
/** Virtual disk file (.vmdk) path relative to the repository */
private String diskFilePath;
/** Optional. Only for vimages instances (bundles) */
private String masterDiskFilePath;
/** ######### hardware requirements : TODO move to {@link TemplateDefinitionDto} ######### */
@Deprecated
/** Use {@link TemplateDefinitionDto} diskFormatTypeUri: TODO use the DiskFormatEnum in the TemplateDefinitionDto*/
private DiskFormatType diskFileFormat;
@Deprecated
// Use links
private String iconPath;
@Deprecated
// Use links
private String categoryName;
private Integer cpu;
private Long ram;
private Long hd;
private MemorySizeUnit ramSizeUnit;
private MemorySizeUnit hdSizeUnit;
@Deprecated
// Use links
private Integer enterpriseRepositoryId;
public String getDiskFilePath()
{
return diskFilePath;
}
public void setDiskFilePath(final String diskFilePath)
{
this.diskFilePath = diskFilePath;
}
/** Optional. Only for vimages instances (bundles) */
public String getMasterDiskFilePath()
{
return masterDiskFilePath;
}
public void setMasterDiskFilePath(final String masterDiskFilePath)
{
this.masterDiskFilePath = masterDiskFilePath;
}
public DiskFormatType getDiskFileFormat()
{
return diskFileFormat;
}
public void setDiskFileFormat(final DiskFormatType diskFileFormat)
{
this.diskFileFormat = diskFileFormat;
this.setDiskFormatType(String.valueOf(diskFileFormat.getAlias()));
// FIXME once TemplateDefinitionDto work with Enum
}
public String getIconPath()
{
return iconPath;
}
public void setIconPath(final String iconPath)
{
this.iconPath = iconPath;
}
public String getCategoryName()
{
return categoryName;
}
public void setCategoryName(final String categoryName)
{
this.categoryName = StringUtils.strip(categoryName);
}
/** TODO get from the EnterpriseRepository link */
public Integer getEnterpriseRepositoryId()
{
return enterpriseRepositoryId;
}
/** TODO set to the EnterpriseRepository link */
public void setEnterpriseRepositoryId(final Integer enterpriseRepositoryId)
{
this.enterpriseRepositoryId = enterpriseRepositoryId;
}
public Integer getCpu()
{
return cpu;
}
public void setCpu(final Integer cpu)
{
this.cpu = cpu;
}
public Long getRam()
{
return ram;
}
public void setRam(final Long ram)
{
this.ram = ram;
}
public Long getHd()
{
return hd;
}
public void setHd(final Long hd)
{
this.hd = hd;
}
/** default MB */
public MemorySizeUnit getRamSizeUnit()
{
return ramSizeUnit != null ? ramSizeUnit : MemorySizeUnit.MEGABYTE;
}
public void setRamSizeUnit(final MemorySizeUnit ramSizeUnit)
{
this.ramSizeUnit = ramSizeUnit;
}
/** default MB */
public MemorySizeUnit getHdSizeUnit()
{
return hdSizeUnit != null ? hdSizeUnit : MemorySizeUnit.MEGABYTE;
}
public void setHdSizeUnit(final MemorySizeUnit hdSizeUnit)
{
this.hdSizeUnit = hdSizeUnit;
}
@Override
public String getBaseMediaType()
{
return BASE_MEDIA_TYPE;
}
}