package alien4cloud.deployment; import java.util.Map; import javax.inject.Inject; import org.springframework.stereotype.Service; import alien4cloud.model.deployment.Deployment; import alien4cloud.model.deployment.DeploymentTopology; import alien4cloud.model.orchestrators.locations.Location; import alien4cloud.paas.model.PaaSTopology; import alien4cloud.paas.model.PaaSTopologyDeploymentContext; import alien4cloud.paas.plan.TopologyTreeBuilderService; import alien4cloud.utils.TypeMap; /** * Utility to build the deployment context. */ @Service public class DeploymentContextService { @Inject private TopologyTreeBuilderService topologyTreeBuilderService; /** * Build a topology deployment context from a given topology and deployment. * * @param deployment The deployment object. * @param topology The topology that will be processed. * @return A PaaSTopologyDeploymentContext that contians */ public PaaSTopologyDeploymentContext buildTopologyDeploymentContext(Deployment deployment, Map<String, Location> locations, DeploymentTopology topology) { return buildTopologyDeploymentContext(deployment, locations, topology, topologyTreeBuilderService.buildPaaSTopology(topology)); } /** * Build a topology deployment context from a given topology and deployment and with a type cache. * * @param deployment The deployment object. * @param topology The topology that will be processed. * @param cache type cache * @return A PaaSTopologyDeploymentContext that contians */ public PaaSTopologyDeploymentContext buildTopologyDeploymentContext(Deployment deployment, Map<String, Location> locations, DeploymentTopology topology, TypeMap cache) { return buildTopologyDeploymentContext(deployment, locations, topology, topologyTreeBuilderService.buildPaaSTopology(topology, cache)); } private PaaSTopologyDeploymentContext buildTopologyDeploymentContext(Deployment deployment, Map<String, Location> locations, DeploymentTopology topology, PaaSTopology paaSTopology) { PaaSTopologyDeploymentContext topologyDeploymentContext = new PaaSTopologyDeploymentContext(); topologyDeploymentContext.setLocations(locations); topologyDeploymentContext.setDeployment(deployment); topologyDeploymentContext.setPaaSTopology(paaSTopology); topologyDeploymentContext.setDeploymentTopology(topology); topologyDeploymentContext.setDeployment(deployment); return topologyDeploymentContext; } }