package com.sequenceiq.cloudbreak.cloud.context; import com.sequenceiq.cloudbreak.cloud.model.CloudPlatformVariant; import com.sequenceiq.cloudbreak.cloud.model.Location; import com.sequenceiq.cloudbreak.cloud.model.Platform; import com.sequenceiq.cloudbreak.cloud.model.Variant; /** * Context object is used to identify messages exchanged between core and Cloud Platfrom. This context object passed along * with the flow to all methods and also sent back in the Response objects. * */ public class CloudContext { private final Long id; private final String name; private final Platform platform; private final String owner; private final Variant variant; private final Location location; public CloudContext(Long id, String name, String platform, String owner) { this.id = id; this.name = name; this.platform = Platform.platform(platform); this.owner = owner; this.variant = null; this.location = null; } public CloudContext(Long id, String name, String platform, String owner, String variant, Location location) { this.id = id; this.name = name; this.platform = Platform.platform(platform); this.owner = owner; this.variant = Variant.variant(variant); this.location = location; } public Long getId() { return id; } public String getName() { return name; } public Platform getPlatform() { return platform; } public Variant getVariant() { return variant; } public String getOwner() { return owner; } public CloudPlatformVariant getPlatformVariant() { return new CloudPlatformVariant(platform, variant); } public Location getLocation() { return location; } @Override public String toString() { final StringBuilder sb = new StringBuilder("CloudContext{"); sb.append("id=").append(id); sb.append(", name='").append(name).append('\''); sb.append(", platform='").append(platform).append('\''); sb.append(", owner='").append(owner).append('\''); sb.append('}'); return sb.toString(); } }