/**
* 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.infrastructure;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.abiquo.abiserver.business.hibernate.pojohb.infrastructure.DatacenterHB;
import com.abiquo.abiserver.business.hibernate.pojohb.service.RemoteServiceHB;
import com.abiquo.abiserver.pojo.IPojo;
import com.abiquo.abiserver.pojo.networking.Network;
import com.abiquo.abiserver.pojo.service.RemoteService;
import com.abiquo.server.core.infrastructure.DatacenterDto;
public class DataCenter implements IPojo<DatacenterHB>
{
/** The logger object */
private final static Logger logger = LoggerFactory.getLogger(DataCenter.class);
/* ------------- Public atributes ------------- */
private int id;
private String name;
private String situation;
private Network network;
private String datacenterUUID;
/** remote services list */
private ArrayList<RemoteService> remoteServices;
/* ------------- Constructor ------------- */
public DataCenter()
{
id = 0;
name = "";
situation = "";
}
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 getSituation()
{
return situation;
}
public void setSituation(final String situation)
{
this.situation = situation;
}
public ArrayList<RemoteService> getRemoteServices()
{
return remoteServices;
}
public void setRemoteServices(final ArrayList<RemoteService> remoteServices)
{
this.remoteServices = remoteServices;
}
public String getDatacenterUUID()
{
return datacenterUUID;
}
public void setDatacenterUUID(final String datacenterUUID)
{
this.datacenterUUID = datacenterUUID;
}
@Override
public DatacenterHB toPojoHB()
{
DatacenterHB dataCenterHB = new DatacenterHB();
dataCenterHB.setIdDataCenter(getId());
dataCenterHB.setName(name);
dataCenterHB.setSituation(situation);
dataCenterHB.setDatacenterUUID(datacenterUUID);
if (remoteServices != null)
{
Set<RemoteServiceHB> remoteServicesHB = new HashSet<RemoteServiceHB>(0);
for (RemoteService remoteService : remoteServices)
{
remoteServicesHB.add(remoteService.toPojoHB());
}
dataCenterHB.setRemoteServicesHB(remoteServicesHB);
}
if (getNetwork() != null)
{
dataCenterHB.setNetwork(network.toPojoHB());
}
return dataCenterHB;
}
/**
* @param network the network to set
*/
public void setNetwork(final Network network)
{
this.network = network;
}
/**
* @return the network
*/
public Network getNetwork()
{
return network;
}
public static DataCenter create(final DatacenterDto dto)
{
DataCenter dataCenter = new DataCenter();
dataCenter.setId(dto.getId());
dataCenter.setName(dto.getName());
dataCenter.setSituation(dto.getLocation());
return dataCenter;
}
}