/** * This file is part of CloudML [ http://cloudml.org ] * * Copyright (C) 2012 - SINTEF ICT * Contact: Franck Chauvel <franck.chauvel@sintef.no> * * Module: root * * CloudML 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, either version 3 of * the License, or (at your option) any later version. * * CloudML 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 for more details. * * You should have received a copy of the GNU Lesser General * Public License along with CloudML. If not, see * <http://www.gnu.org/licenses/>. */ package org.cloudml.monitoring.synchronization; import it.polimi.modaclouds.qos_models.monitoring_ontology.*; import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Set; /** * @author Francesco di Forenza and Lorenzo Cianciaruso */ public class Model { private Set<CloudProvider> cloudProviders; private Set<Location> locations; private Set<VM> vMs; private Set<PaaSService> paaSServices; private Set<InternalComponent> internalComponents; private Set<Method> methods; public void add(CloudProvider cloudProvider) { if (cloudProviders == null) cloudProviders = new HashSet<CloudProvider>(); cloudProviders.add(cloudProvider); } public void add(Location location) { if (locations == null) locations = new HashSet<Location>(); locations.add(location); } public void add(VM vM) { if (vMs == null) vMs = new HashSet<VM>(); vMs.add(vM); } public void add(PaaSService paaSService) { if (paaSServices == null) paaSServices = new HashSet<PaaSService>(); paaSServices.add(paaSService); } public void add(InternalComponent internalComponent) { if (internalComponents == null) internalComponents = new HashSet<InternalComponent>(); internalComponents.add(internalComponent); } public void add(Method method) { if (methods == null) methods = new HashSet<Method>(); methods.add(method); } public Set<CloudProvider> getCloudProviders() { return cloudProviders; } public void setCloudProviders(Set<CloudProvider> cloudProviders) { this.cloudProviders = cloudProviders; } public Set<Location> getLocations() { return locations; } public void setLocations(Set<Location> locations) { this.locations = locations; } public Set<VM> getvMs() { return vMs; } public void setvMs(Set<VM> vMs) { this.vMs = vMs; } public Set<PaaSService> getPaaSServices() { return paaSServices; } public void setPaaSServices(Set<PaaSService> paaSServices) { this.paaSServices = paaSServices; } public Set<InternalComponent> getInternalComponents() { return internalComponents; } public void setInternalComponents(Set<InternalComponent> internalComponents) { this.internalComponents = internalComponents; } public Set<Method> getMethods() { return methods; } public void setMethods(Set<Method> methods) { this.methods = methods; } public Set<Resource> getResources() { Set<Resource> resources = new HashSet<Resource>(); resources.addAll(nullable(cloudProviders)); resources.addAll(nullable(locations)); resources.addAll(nullable(vMs)); resources.addAll(nullable(paaSServices)); resources.addAll(nullable(internalComponents)); resources.addAll(nullable(methods)); return resources; } private <T> Collection<T> nullable( Set<T> collection) { return collection == null? new HashSet<T>() : collection; } }