JCLOUDS-951: Remove inheritance in ProfitBrick's AutoValue classes
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/5e82bbfa Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/5e82bbfa Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/5e82bbfa Branch: refs/heads/master Commit: 5e82bbfa462cf3a537fef4d6a42eba7bed87de55 Parents: ed247e7 Author: Reijhanniel Jearl Campos <[email protected]> Authored: Wed Oct 21 22:55:39 2015 +0800 Committer: Zack Shoylev <[email protected]> Committed: Tue Oct 27 13:12:23 2015 -0500 ---------------------------------------------------------------------- .../AddFirewallRuleToNicRequestBinder.java | 2 +- .../CreateLoadBalancerRequestBinder.java | 4 +- .../UpdateLoadBalancerRequestBinder.java | 2 +- .../snapshot/UpdateSnapshotRequestBinder.java | 2 +- .../storage/CreateStorageRequestBinder.java | 2 +- .../ProfitBricksComputeServiceAdapter.java | 2 +- ...ProfitBricksComputeServiceContextModule.java | 2 +- .../compute/function/ProvisionableToImage.java | 2 +- .../profitbricks/domain/AvailabilityZone.java | 9 +- .../jclouds/profitbricks/domain/DataCenter.java | 112 ++--- .../org/jclouds/profitbricks/domain/Drive.java | 37 +- .../jclouds/profitbricks/domain/Firewall.java | 332 +++---------- .../org/jclouds/profitbricks/domain/Image.java | 134 +++--- .../jclouds/profitbricks/domain/IpBlock.java | 90 ++-- .../profitbricks/domain/LoadBalancer.java | 321 ++++--------- .../jclouds/profitbricks/domain/Location.java | 8 +- .../org/jclouds/profitbricks/domain/Nic.java | 303 ++++-------- .../org/jclouds/profitbricks/domain/OsType.java | 8 +- .../profitbricks/domain/Provisionable.java | 25 + .../profitbricks/domain/ProvisioningState.java | 8 +- .../org/jclouds/profitbricks/domain/Server.java | 480 +++++++++---------- .../profitbricks/domain/ServiceFault.java | 45 +- .../jclouds/profitbricks/domain/Snapshot.java | 290 +++++------ .../jclouds/profitbricks/domain/Storage.java | 259 +++------- .../ipblock/BaseIpBlockResponseHandler.java | 7 +- .../parser/ipblock/IpBlockResponseHandler.java | 4 +- .../BaseLoadBalancerResponseHandler.java | 2 +- .../http/parser/nic/BaseNicResponseHandler.java | 7 +- .../http/parser/nic/NicListResponseHandler.java | 6 + .../http/parser/nic/NicResponseHandler.java | 7 +- .../publicip/PublicIpListResponseHandler.java | 4 +- .../server/BaseServerResponseHandler.java | 2 +- .../server/ServerListResponseHandler.java | 4 +- .../profitbricks/util/Preconditions.java | 100 ++++ .../CreateDataCenterRequestBinderTest.java | 2 +- .../UpdateDataCenterRequestBinderTest.java | 2 +- .../AddRomDriveToServerRequestBinderTest.java | 2 +- .../AddFirewallRuleToNicRequestBinderTest.java | 27 +- .../CreateLoadBalancerRequestBinderTest.java | 28 +- ...DeregisterLoadBalancerRequestBinderTest.java | 2 +- .../RegisterLoadBalancerRequestBinderTest.java | 2 +- .../UpdateLoadBalancerRequestBinderTest.java | 19 +- .../CreateSnapshotRequestBinderTest.java | 10 +- .../RollbackSnapshotRequestBinderTest.java | 5 +- .../UpdateSnapshotRequestBinderTest.java | 16 +- .../function/ServerToNodeMetadataTest.java | 2 +- .../domain/FirewallRuleBuilderTest.java | 2 +- .../profitbricks/domain/ServerBuilderTest.java | 8 +- .../features/DataCenterApiLiveTest.java | 4 +- .../features/DataCenterApiMockTest.java | 6 +- .../features/DrivesApiLiveTest.java | 2 +- .../features/DrivesApiMockTest.java | 2 +- .../features/FirewallApiLiveTest.java | 14 +- .../features/FirewallApiMockTest.java | 24 +- .../features/LoadBalancerApiLiveTest.java | 134 ++++++ .../features/LoadBalancerApiMockTest.java | 290 +++++++++++ .../features/LoadbalancerApiLiveTest.java | 135 ------ .../features/LoadbalancerApiMockTest.java | 285 ----------- .../profitbricks/features/NicApiMockTest.java | 18 +- .../features/ServerApiLiveTest.java | 7 +- .../features/SnapshotApiLiveTest.java | 10 +- .../features/SnapshotApiMockTest.java | 10 +- .../features/StorageApiLiveTest.java | 6 +- ...omPayloadHttpCommandExecutorServiceTest.java | 10 +- .../DataCenterInfoResponseHandlerTest.java | 2 +- .../ipblock/IpBlockListResponseHandlerTest.java | 19 +- .../ipblock/IpBlockResponseHandlerTest.java | 5 +- .../LoadBalancerListResponseHandlerTest.java | 4 +- .../LoadBalancerResponseHandlerTest.java | 2 +- .../parser/nic/NicListResponseHandlerTest.java | 6 +- .../http/parser/nic/NicResponseHandlerTest.java | 8 +- .../server/ServerInfoResponseHandlerTest.java | 2 +- .../server/ServerListResponseHandlerTest.java | 4 +- .../SnapshotListResponseHandlerTest.java | 4 +- .../snapshot/SnapshotResponseHandlerTest.java | 2 +- .../test/resources/ipblock/ipblock-reserve.xml | 2 +- .../src/test/resources/ipblock/ipblock.xml | 4 +- .../src/test/resources/ipblock/ipblocks.xml | 18 +- .../loadbalancer/loadbalancer-create.xml | 2 +- .../loadbalancer/loadbalancer-delete.xml | 2 +- .../resources/loadbalancer/loadbalancer.xml | 2 +- .../resources/loadbalancer/loadbalancers.xml | 4 +- .../profitbricks/src/test/resources/nic/nic.xml | 4 +- .../src/test/resources/nic/nics.xml | 4 +- 84 files changed, 1629 insertions(+), 2177 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/5e82bbfa/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/firewall/AddFirewallRuleToNicRequestBinder.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/firewall/AddFirewallRuleToNicRequestBinder.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/firewall/AddFirewallRuleToNicRequestBinder.java index 9bdbf76..8f4db03 100644 --- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/firewall/AddFirewallRuleToNicRequestBinder.java +++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/firewall/AddFirewallRuleToNicRequestBinder.java @@ -33,7 +33,7 @@ public class AddFirewallRuleToNicRequestBinder extends BaseProfitBricksRequestBi protected String createPayload(Firewall.Request.AddRulePayload payload) { requestBuilder.append("<ws:addFirewallRulesToNic>") .append(format("<nicId>%s</nicId>", payload.nicId())); - for (Firewall.RuleWithIcmp rule : payload.rules()) + for (Firewall.Rule rule : payload.rules()) requestBuilder .append("<request>") .append(formatIfNotEmpty("<icmpCode>%s</icmpCode>", rule.icmpCode())) http://git-wip-us.apache.org/repos/asf/jclouds/blob/5e82bbfa/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/loadbalancer/CreateLoadBalancerRequestBinder.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/loadbalancer/CreateLoadBalancerRequestBinder.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/loadbalancer/CreateLoadBalancerRequestBinder.java index 90eb93f..e3d13a1 100644 --- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/loadbalancer/CreateLoadBalancerRequestBinder.java +++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/loadbalancer/CreateLoadBalancerRequestBinder.java @@ -35,8 +35,8 @@ public class CreateLoadBalancerRequestBinder extends BaseProfitBricksRequestBind requestBuilder.append("<ws:createLoadBalancer>") .append("<request>") .append(format("<dataCenterId>%s</dataCenterId>", payload.dataCenterId())) - .append(format("<loadBalancerName>%s</loadBalancerName>", payload.loadBalancerName())) - .append(format("<loadBalancerAlgorithm>%s</loadBalancerAlgorithm>", payload.loadBalancerAlgorithm())) + .append(format("<loadBalancerName>%s</loadBalancerName>", payload.name())) + .append(format("<loadBalancerAlgorithm>%s</loadBalancerAlgorithm>", payload.algorithm())) .append(format("<ip>%s</ip>", payload.ip())) .append(format("<lanId>%s</lanId>", payload.lanId())); for (String serverId : payload.serverIds()) http://git-wip-us.apache.org/repos/asf/jclouds/blob/5e82bbfa/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/loadbalancer/UpdateLoadBalancerRequestBinder.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/loadbalancer/UpdateLoadBalancerRequestBinder.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/loadbalancer/UpdateLoadBalancerRequestBinder.java index 0496655..c093f23 100644 --- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/loadbalancer/UpdateLoadBalancerRequestBinder.java +++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/loadbalancer/UpdateLoadBalancerRequestBinder.java @@ -36,7 +36,7 @@ public class UpdateLoadBalancerRequestBinder extends BaseProfitBricksRequestBind .append("<request>") .append(format("<loadBalancerId>%s</loadBalancerId>", payload.id())) .append(formatIfNotEmpty("<loadBalancerName>%s</loadBalancerName>", payload.name())) - .append(formatIfNotEmpty("<loadBalancerAlgorithm>%s</loadBalancerAlgorithm>", payload.loadBalancerAlgorithm())) + .append(formatIfNotEmpty("<loadBalancerAlgorithm>%s</loadBalancerAlgorithm>", payload.algorithm())) .append(formatIfNotEmpty("<ip>%s</ip>", payload.ip())) .append("</request>") .append("</ws:updateLoadBalancer>").toString(); http://git-wip-us.apache.org/repos/asf/jclouds/blob/5e82bbfa/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/snapshot/UpdateSnapshotRequestBinder.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/snapshot/UpdateSnapshotRequestBinder.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/snapshot/UpdateSnapshotRequestBinder.java index df1b7cd..1414c69 100644 --- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/snapshot/UpdateSnapshotRequestBinder.java +++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/snapshot/UpdateSnapshotRequestBinder.java @@ -33,7 +33,7 @@ public class UpdateSnapshotRequestBinder extends BaseProfitBricksRequestBinder<S protected String createPayload(Snapshot.Request.UpdatePayload payload) { requestBuilder.append("<ws:updateSnapshot>") .append("<request>") - .append(format("<snapshotId>%s</snapshotId>", payload.snapshotId())) + .append(format("<snapshotId>%s</snapshotId>", payload.id())) .append(format("<description>%s</description>", payload.description())) .append(format("<snapshotName>%s</snapshotName>", payload.name())) .append(formatIfNotEmpty("<bootable>%s</bootable>", payload.bootable())) http://git-wip-us.apache.org/repos/asf/jclouds/blob/5e82bbfa/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/storage/CreateStorageRequestBinder.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/storage/CreateStorageRequestBinder.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/storage/CreateStorageRequestBinder.java index acfb6f3..9681b64 100644 --- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/storage/CreateStorageRequestBinder.java +++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/storage/CreateStorageRequestBinder.java @@ -37,7 +37,7 @@ public class CreateStorageRequestBinder extends BaseProfitBricksRequestBinder<St .append(formatIfNotEmpty("<storageName>%s</storageName>", payload.name())) .append(format("<size>%.0f</size>", payload.size())) .append(formatIfNotEmpty("<mountImageId>%s</mountImageId>", payload.mountImageId())) - .append(formatIfNotEmpty("<profitBricksImagePassword>%s</profitBricksImagePassword>", payload.profitBricksImagePassword())) + .append(formatIfNotEmpty("<profitBricksImagePassword>%s</profitBricksImagePassword>", payload.imagePassword())) .append("</request>") .append("</ws:createStorage>"); return requestBuilder.toString(); http://git-wip-us.apache.org/repos/asf/jclouds/blob/5e82bbfa/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/ProfitBricksComputeServiceAdapter.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/ProfitBricksComputeServiceAdapter.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/ProfitBricksComputeServiceAdapter.java index add3fb9..4f6548e 100644 --- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/ProfitBricksComputeServiceAdapter.java +++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/ProfitBricksComputeServiceAdapter.java @@ -54,7 +54,7 @@ import org.jclouds.profitbricks.features.ServerApi; import org.jclouds.profitbricks.compute.concurrent.ProvisioningJob; import org.jclouds.profitbricks.compute.concurrent.ProvisioningManager; import org.jclouds.profitbricks.domain.Snapshot; -import org.jclouds.profitbricks.domain.internal.Provisionable; +import org.jclouds.profitbricks.domain.Provisionable; import org.jclouds.profitbricks.util.Passwords; import org.jclouds.rest.ResourceNotFoundException; http://git-wip-us.apache.org/repos/asf/jclouds/blob/5e82bbfa/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/config/ProfitBricksComputeServiceContextModule.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/config/ProfitBricksComputeServiceContextModule.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/config/ProfitBricksComputeServiceContextModule.java index d260caf..2b45d18 100644 --- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/config/ProfitBricksComputeServiceContextModule.java +++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/config/ProfitBricksComputeServiceContextModule.java @@ -52,7 +52,7 @@ import org.jclouds.profitbricks.compute.function.StorageToVolume; import org.jclouds.profitbricks.compute.internal.ProvisioningStatusAware; import org.jclouds.profitbricks.compute.internal.ProvisioningStatusPollingPredicate; import org.jclouds.profitbricks.domain.ProvisioningState; -import org.jclouds.profitbricks.domain.internal.Provisionable; +import org.jclouds.profitbricks.domain.Provisionable; import org.jclouds.util.Predicates2; import com.google.common.base.Function; http://git-wip-us.apache.org/repos/asf/jclouds/blob/5e82bbfa/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/function/ProvisionableToImage.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/function/ProvisionableToImage.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/function/ProvisionableToImage.java index c5fcd78..c5c7f5e 100644 --- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/function/ProvisionableToImage.java +++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/function/ProvisionableToImage.java @@ -29,7 +29,7 @@ import org.jclouds.domain.Location; import org.jclouds.profitbricks.domain.OsType; import org.jclouds.profitbricks.domain.ProvisioningState; import org.jclouds.profitbricks.domain.Snapshot; -import org.jclouds.profitbricks.domain.internal.Provisionable; +import org.jclouds.profitbricks.domain.Provisionable; import com.google.common.base.Function; import com.google.common.base.Strings; http://git-wip-us.apache.org/repos/asf/jclouds/blob/5e82bbfa/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/AvailabilityZone.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/AvailabilityZone.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/AvailabilityZone.java index 97cac69..a3c50ae 100644 --- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/AvailabilityZone.java +++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/AvailabilityZone.java @@ -16,6 +16,8 @@ */ package org.jclouds.profitbricks.domain; +import com.google.common.base.Enums; + public enum AvailabilityZone { AUTO, ZONE_1, ZONE_2, UNRECOGNIZED; @@ -25,11 +27,6 @@ public enum AvailabilityZone { } public static AvailabilityZone fromValue(String v) { - try { - return valueOf(v); - } catch (Exception ex) { - return UNRECOGNIZED; - } + return Enums.getIfPresent(AvailabilityZone.class, v).or(UNRECOGNIZED); } - } http://git-wip-us.apache.org/repos/asf/jclouds/blob/5e82bbfa/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/DataCenter.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/DataCenter.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/DataCenter.java index a24d84b..9bb09ab 100644 --- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/DataCenter.java +++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/DataCenter.java @@ -16,17 +16,14 @@ */ package org.jclouds.profitbricks.domain; -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Strings.isNullOrEmpty; +import static org.jclouds.profitbricks.util.Preconditions.checkInvalidChars; import java.util.List; -import java.util.regex.Pattern; import org.jclouds.javax.annotation.Nullable; import com.google.auto.value.AutoValue; import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; @AutoValue public abstract class DataCenter { @@ -49,81 +46,60 @@ public abstract class DataCenter { @Nullable public abstract List<Storage> storages(); -// @Nullable public abstract List<LoadBalancer> loadBalancers(); - - public static DataCenter create(String id, String name, int version, ProvisioningState state, Location location, List<Server> servers, - List<Storage> storages) { - return new AutoValue_DataCenter(id, name, version, state, location, - servers != null ? ImmutableList.copyOf(servers) : Lists.<Server>newArrayList(), - storages != null ? ImmutableList.copyOf(storages) : Lists.<Storage>newArrayList()); - } public static Builder builder() { - return new Builder(); + return new AutoValue_DataCenter.Builder() + .servers(ImmutableList.<Server>of()) + .storages(ImmutableList.<Storage>of()); } - public Builder toBuilder() { - return builder().fromDataCenter(this); - } + public abstract Builder toBuilder(); - public static final class Builder { + @AutoValue.Builder + public abstract static class Builder { - private String id; - private String name; - private ProvisioningState state; - private Location location; - private int version; - private List<Server> servers; - private List<Storage> storages; -// private List<LoadBalancer> loadBalancer; + public abstract Builder id(String id); - public Builder id(String id) { - this.id = id; - return this; - } + public abstract Builder name(String name); - public Builder name(String name) { - this.name = name; - return this; - } + public abstract Builder version(int version); - public Builder state(ProvisioningState state) { - this.state = state; - return this; - } + public abstract Builder state(ProvisioningState state); - public Builder location(Location location) { - this.location = location; - return this; - } + public abstract Builder location(Location location); - public Builder version(int version) { - this.version = version; - return this; - } + public abstract Builder servers(List<Server> servers); - public Builder servers(List<Server> servers) { - this.servers = servers; - return this; - } - - public Builder storages(List<Storage> storages) { - this.storages = storages; - return this; - } + public abstract Builder storages(List<Storage> storages); - public DataCenter build() { - return DataCenter.create(id, name, version, state, location, servers, storages); + abstract DataCenter autoBuild(); + + public DataCenter build(){ + DataCenter built = autoBuild(); + return built.toBuilder() + .servers(ImmutableList.copyOf(built.servers())) + .storages(ImmutableList.copyOf(built.storages())) + .autoBuild(); } - public Builder fromDataCenter(DataCenter in) { - return this.id(in.id()).name(in.name()).version(in.version()).state(in.state()).location(in.location()).servers(in.servers()) - .storages(in.storages()); - } } public static final class Request { + public static CreatePayload creatingPayload(String name, Location location) { + CreatePayload payload = new AutoValue_DataCenter_Request_CreatePayload(name, location); + checkInvalidChars(payload.name()); + + return payload; + } + + public static UpdatePayload updatingPayload(String id, String name) { + UpdatePayload payload = new AutoValue_DataCenter_Request_UpdatePayload(id, name); + checkInvalidChars(payload.name()); + + return payload; + } + @AutoValue public abstract static class CreatePayload { @@ -131,11 +107,6 @@ public abstract class DataCenter { public abstract Location location(); - public static CreatePayload create(String name, Location location) { - checkInvalidChars(name); - return new AutoValue_DataCenter_Request_CreatePayload(name, location); - } - } @AutoValue @@ -145,17 +116,6 @@ public abstract class DataCenter { public abstract String name(); - public static UpdatePayload create(String id, String name) { - checkInvalidChars(name); - return new AutoValue_DataCenter_Request_UpdatePayload(id, name); - } - } - - private static final Pattern INVALID_CHARS = Pattern.compile("^.*[@/\\|'`â^].*$"); - - private static void checkInvalidChars(String name) { - checkArgument(!isNullOrEmpty(name), "Name is required."); - checkArgument(!INVALID_CHARS.matcher(name).matches(), "Name must not contain any of: @ / \\ | ' ` â ^"); } } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/5e82bbfa/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Drive.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Drive.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Drive.java index 08add2a..c2efe09 100644 --- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Drive.java +++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Drive.java @@ -18,10 +18,12 @@ package org.jclouds.profitbricks.domain; import com.google.auto.value.AutoValue; +import org.jclouds.javax.annotation.Nullable; + @AutoValue public abstract class Drive { - public static final class Request { + public abstract static class Request { @AutoValue public abstract static class AddRomDriveToServerPayload { @@ -30,40 +32,23 @@ public abstract class Drive { public abstract String imageId(); + @Nullable public abstract String deviceNumber(); - public static AddRomDriveToServerPayload create(String serverId, String storageId, String deviceNumber) { - return new AutoValue_Drive_Request_AddRomDriveToServerPayload(serverId, storageId, deviceNumber); - } - public static Builder builder() { - return new Builder(); + return new AutoValue_Drive_Request_AddRomDriveToServerPayload.Builder(); } - public static class Builder { - - private String serverId; - private String imageId; - private String deviceNumber; + @AutoValue.Builder + public abstract static class Builder { - public Builder serverId(String serverId) { - this.serverId = serverId; - return this; - } + public abstract Builder serverId(String serverId); - public Builder storageId(String storageId) { - this.imageId = storageId; - return this; - } + public abstract Builder imageId(String imageId); - public Builder deviceNumber(String deviceNumber) { - this.deviceNumber = deviceNumber; - return this; - } + public abstract Builder deviceNumber(String deviceNumber); - public AddRomDriveToServerPayload build() { - return AddRomDriveToServerPayload.create(serverId, imageId, deviceNumber); - } + public abstract AddRomDriveToServerPayload build(); } } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/5e82bbfa/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Firewall.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Firewall.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Firewall.java index 2108bc4..78b30c1 100644 --- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Firewall.java +++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Firewall.java @@ -16,18 +16,18 @@ */ package org.jclouds.profitbricks.domain; -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.net.InetAddresses.isInetAddress; -import static org.jclouds.profitbricks.util.MacAddresses.isMacAddress; +import static org.jclouds.profitbricks.util.Preconditions.checkIcmp; +import static org.jclouds.profitbricks.util.Preconditions.checkIp; +import static org.jclouds.profitbricks.util.Preconditions.checkMacAddress; +import static org.jclouds.profitbricks.util.Preconditions.checkPortRange; import java.util.List; import org.jclouds.javax.annotation.Nullable; -import org.jclouds.profitbricks.domain.internal.FirewallRuleCommonProperties; import com.google.auto.value.AutoValue; +import com.google.common.base.Enums; import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; @AutoValue public abstract class Firewall { @@ -37,11 +37,7 @@ public abstract class Firewall { TCP, UDP, ICMP, ANY, UNRECOGNIZED; public static Protocol fromValue(String value) { - try { - return valueOf(value); - } catch (IllegalArgumentException e) { - return UNRECOGNIZED; - } + return Enums.getIfPresent(Protocol.class, value).or(UNRECOGNIZED); } } @@ -51,7 +47,8 @@ public abstract class Firewall { @Nullable public abstract String nicId(); - public abstract boolean active(); + @Nullable + public abstract Boolean active(); @Nullable public abstract ProvisioningState state(); @@ -59,228 +56,79 @@ public abstract class Firewall { @Nullable public abstract List<Rule> rules(); - public static Firewall create(String id, String nicId, boolean active, ProvisioningState provisioningState, - List<Rule> rules) { - return new AutoValue_Firewall(id, nicId, active, provisioningState, - rules != null ? ImmutableList.copyOf(rules) : ImmutableList.<Rule>of()); - } - public static Builder builder() { - return new Builder(); + return new AutoValue_Firewall.Builder() + .rules(ImmutableList.<Rule>of()); } - public static final class Request { - - public static AddRulePayload.Builder ruleAddingBuilder() { - return new AddRulePayload.Builder(); - } - - @AutoValue - public abstract static class AddRulePayload { + public abstract Builder toBuilder(); - public abstract String nicId(); + @AutoValue.Builder + public abstract static class Builder { - public abstract List<RuleWithIcmp> rules(); + public abstract Builder id(String id); - public static AddRulePayload create(String nicId, List<RuleWithIcmp> rules) { - return new AutoValue_Firewall_Request_AddRulePayload(nicId, rules); - } + public abstract Builder nicId(String nicId); - public static class Builder { + public abstract Builder active(Boolean active); - private String nicId; - private List<RuleWithIcmp> rules = Lists.newArrayList(); + public abstract Builder state(ProvisioningState state); - public Builder nicId(String nicId) { - this.nicId = nicId; - return this; - } + public abstract Builder rules(List<Rule> rules); - public Builder rules(List<RuleWithIcmp> rules) { - this.rules = rules; - return this; - } - - public RuleWithIcmp.Builder newRule() { - return new RuleWithIcmp.Builder(this); - } - - public Builder addRule(RuleWithIcmp rule) { - this.rules.add(rule); - return this; - } - - public AddRulePayload build() { - return AddRulePayload.create(nicId, rules); - } - } + abstract Firewall autoBuild(); + + public Firewall build(){ + Firewall built = autoBuild(); + + return built.toBuilder() + .rules(ImmutableList.copyOf(built.rules())) + .autoBuild(); } } - public static class Builder { - - private String id; - private String nicId; - private boolean active; - - private ProvisioningState state; - private List<Rule> rules; - - public Builder id(String id) { - this.id = id; - return this; - } - - public Builder nicId(String nicId) { - this.nicId = nicId; - return this; - } - - public Builder active(boolean active) { - this.active = active; - return this; - } - - public Builder state(ProvisioningState state) { - this.state = state; - return this; - } - - public Builder rules(List<Rule> firewallRules) { - this.rules = firewallRules; - return this; - } - - public Builder fromFirewall(Firewall in) { - return this.id(in.id()).nicId(in.nicId()).active(in.active()).state(in.state()) - .rules(in.rules()); - } - - public Firewall build() { - return Firewall.create(id, nicId, active, state, rules); - } - } - - public abstract static class RuleBuilder<B extends RuleBuilder, D extends FirewallRuleCommonProperties> { - - protected String name; - protected Integer portRangeEnd; - protected Integer portRangeStart; - protected Protocol protocol; - protected String sourceIp; - protected String sourceMac; - protected String targetIp; - - public B name(String name) { - this.name = name; - return self(); - } - - public B portRangeEnd(Integer portRangeEnd) { - this.portRangeEnd = portRangeEnd; - return self(); - } - - public B portRangeStart(Integer portRangeStart) { - this.portRangeStart = portRangeStart; - return self(); - } - - public B protocol(Protocol protocol) { - this.protocol = protocol; - return self(); - } - - public B sourceIp(String sourceIp) { - this.sourceIp = sourceIp; - return self(); - } - - public B sourceMac(String sourceMac) { - this.sourceMac = sourceMac; - return self(); - } + public static final class Request { - public B targetIp(String targetIp) { - this.targetIp = targetIp; - return self(); + public static AddRulePayload createAddRulePayload(String nicId, List<Rule> rules) { + return new AutoValue_Firewall_Request_AddRulePayload(nicId, ImmutableList.copyOf(rules)); } - public abstract B self(); - - public abstract D build(); - - protected void checkPortRange() { - checkArgument(!(portRangeEnd == null ^ portRangeStart == null), "Port range must be both present or null"); - if (portRangeEnd != null) { - checkArgument(protocol == Protocol.TCP || protocol == Protocol.UDP, "Port range can only be set for TCP or UDP"); - checkArgument(portRangeEnd > portRangeStart, "portRangeEnd must be greater than portRangeStart"); - checkArgument(portRangeEnd >= 1 && portRangeEnd <= 65534, "Port range end must be 1 to 65534"); - checkArgument(portRangeStart >= 1 && portRangeStart <= 65534, "Port range start must be 1 to 65534"); - } - } + @AutoValue + public abstract static class AddRulePayload { - protected void checkMac() { - if (sourceMac != null) - checkArgument(isMacAddress(sourceMac), "Source MAC must match pattern 'aa:bb:cc:dd:ee:ff'"); - } + public abstract String nicId(); - protected void checkIp() { - if (sourceIp != null) - checkArgument(isInetAddress(sourceIp), "Source IP is invalid"); - if (targetIp != null) - checkArgument(isInetAddress(targetIp), "Target IP is invalid"); - } + public abstract List<Rule> rules(); - protected void checkFields() { - checkMac(); - checkPortRange(); - checkIp(); } - } @AutoValue - public abstract static class Rule implements FirewallRuleCommonProperties { + public abstract static class Rule { @Nullable public abstract String id(); - public static Rule create(String id, String name, Integer portRangeEnd, Integer portRangeStart, - Protocol protocol, String sourceIp, String sourceMac, String targetIp) { - return new AutoValue_Firewall_Rule(name, portRangeEnd, portRangeStart, protocol, sourceIp, sourceMac, - targetIp, id); - } - - public static Builder builder() { - return new Builder(); - } - - public static class Builder extends RuleBuilder<Builder, Rule> { + @Nullable + public abstract String name(); - private String id; + @Nullable + public abstract Integer portRangeEnd(); - public Builder id(String id) { - this.id = id; - return self(); - } + @Nullable + public abstract Integer portRangeStart(); - @Override - public Builder self() { - return this; - } + @Nullable + public abstract Protocol protocol(); - @Override - public Rule build() { - checkFields(); - return Rule.create(id, name, portRangeEnd, portRangeStart, protocol, sourceIp, sourceMac, targetIp); - } + @Nullable + public abstract String sourceIp(); - } - } + @Nullable + public abstract String sourceMac(); - @AutoValue - public abstract static class RuleWithIcmp implements FirewallRuleCommonProperties { + @Nullable + public abstract String targetIp(); @Nullable public abstract Integer icmpCode(); @@ -288,76 +136,52 @@ public abstract class Firewall { @Nullable public abstract Integer icmpType(); - public static RuleWithIcmp create(Integer icmpCode, Integer icmpType, String name, Integer portRangeEnd, - Integer portRangeStart, Protocol protocol, String sourceIp, String sourceMac, String targetIp) { - return new AutoValue_Firewall_RuleWithIcmp(name, portRangeEnd, portRangeStart, protocol, sourceIp, sourceMac, - targetIp, icmpCode, icmpType); - } - public static Builder builder() { - return new Builder(); + return new AutoValue_Firewall_Rule.Builder() + .protocol(Protocol.ANY); } - public static class Builder extends RuleBuilder<Builder, RuleWithIcmp> { + public Builder toBuilder() { + return new AutoValue_Firewall_Rule.Builder(this); + } - private Request.AddRulePayload.Builder parentBuilder; + @AutoValue.Builder + public abstract static class Builder { - private Integer icmpCode; - private Integer icmpType; + public abstract Builder id(String id); - public Builder() { + public abstract Builder name(String name); - } + public abstract Builder portRangeEnd(Integer portRangeEnd); - private Builder(Request.AddRulePayload.Builder parentBuilder) { - this.parentBuilder = parentBuilder; - } + public abstract Builder portRangeStart(Integer portRangeStart); - public Builder nextRule() { - this.parentBuilder.addRule(build()); - return new Builder(parentBuilder); - } + public abstract Builder protocol(Protocol protocol); - public Request.AddRulePayload.Builder endRule() { - this.parentBuilder.addRule(build()); - return parentBuilder; - } + public abstract Builder sourceIp(String sourceIp); - public Builder icmpCode(Integer icmpCode) { - this.icmpCode = icmpCode; - return this; - } + public abstract Builder sourceMac(String sourceMac); - public Builder icmpType(Integer icmpType) { - this.icmpType = icmpType; - return this; - } + public abstract Builder targetIp(String targetIp); - @Override - public Builder self() { - return this; - } + public abstract Builder icmpCode(Integer icmpCode); - @Override - public RuleWithIcmp build() { - checkFields(); - return RuleWithIcmp.create(icmpCode, icmpType, name, portRangeEnd, portRangeStart, protocol, - sourceIp, sourceMac, targetIp); - } + public abstract Builder icmpType(Integer icmpType); - @Override - protected void checkFields() { - super.checkFields(); - checkIcmp(); - } + abstract Rule autoBuild(); - private void checkIcmp() { - if (icmpCode != null) - checkArgument(icmpCode >= 1 && icmpCode <= 254, "ICMP code must be 1 to 254"); - if (icmpType != null) - checkArgument(icmpType >= 1 && icmpType <= 254, "ICMP type must be 1 to 254"); - if (icmpCode != null || icmpType != null) - checkArgument(protocol == Protocol.ICMP, "ICMP code and types can only be set for ICMP protocol"); + public Rule build() { + Rule rule = autoBuild(); + if (rule.sourceIp() != null) + checkIp(rule.sourceIp()); + if (rule.targetIp() != null) + checkIp(rule.targetIp()); + if (rule.sourceMac() != null) + checkMacAddress(rule.sourceMac()); + checkPortRange(rule.portRangeStart(), rule.portRangeEnd(), rule.protocol()); + checkIcmp(rule.icmpType(), rule.icmpCode(), rule.protocol()); + + return rule; } } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/5e82bbfa/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Image.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Image.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Image.java index 0987324..383a744 100644 --- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Image.java +++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Image.java @@ -16,9 +16,10 @@ */ package org.jclouds.profitbricks.domain; -import org.jclouds.profitbricks.domain.internal.Provisionable; - import com.google.auto.value.AutoValue; +import com.google.common.base.Enums; + +import org.jclouds.javax.annotation.Nullable; @AutoValue public abstract class Image implements Provisionable { @@ -28,84 +29,99 @@ public abstract class Image implements Provisionable { HDD, CDROM, UNRECOGNIZED; public static Type fromValue(String v) { - try { - return valueOf(v); - } catch (IllegalArgumentException ex) { - return UNRECOGNIZED; - } + return Enums.getIfPresent(Type.class, v).or(UNRECOGNIZED); } } + public abstract String id(); + + public abstract String name(); + + public abstract float size(); // MB + + public abstract Location location(); + + public abstract OsType osType(); + public abstract Type type(); - public abstract boolean isPublic(); + @Nullable + public abstract Boolean isPublic(); - public abstract boolean isWriteable(); + @Nullable + public abstract Boolean isWriteable(); - public abstract boolean isBootable(); + @Nullable + public abstract Boolean isBootable(); - public static Image create(String id, String name, float size, Type type, Location location, OsType osType, - boolean isPublic, Boolean isWriteable, Boolean isBootable, Boolean cpuHotPlug, Boolean cpuHotUnPlug, - Boolean ramHotPlug, Boolean ramHotUnPlug, Boolean nicHotPlug, Boolean nicHotUnPlug, - Boolean discVirtioHotPlug, Boolean discVirtioHotUnPlug) { - return new AutoValue_Image(cpuHotPlug, cpuHotUnPlug, ramHotPlug, ramHotUnPlug, nicHotPlug, nicHotUnPlug, - discVirtioHotPlug, discVirtioHotUnPlug, id, name, size, location, osType, type, isPublic, isWriteable, - isBootable); - } + @Nullable + public abstract Boolean isCpuHotPlug(); + + @Nullable + public abstract Boolean isCpuHotUnPlug(); + + @Nullable + public abstract Boolean isRamHotPlug(); + + @Nullable + public abstract Boolean isRamHotUnPlug(); + + @Nullable + public abstract Boolean isNicHotPlug(); + + @Nullable + public abstract Boolean isNicHotUnPlug(); + + @Nullable + public abstract Boolean isDiscVirtioHotPlug(); + + @Nullable + public abstract Boolean isDiscVirtioHotUnPlug(); public static Builder builder() { - return new Builder(); + return new AutoValue_Image.Builder(); } - public Builder toBuilder() { - return builder().fromImage(this); - } + public abstract Builder toBuilder(); - public static class Builder extends Provisionable.Builder<Builder, Image> { + @AutoValue.Builder + public abstract static class Builder { - private Type type; - private boolean isPublic; - private boolean isWriteable; - private boolean isBootable; + public abstract Builder id(String id); - public Builder type(Type type) { - this.type = type; - return this; - } + public abstract Builder name(String name); - public Builder isPublic(boolean isPublic) { - this.isPublic = isPublic; - return this; - } + public abstract Builder size(float size); - public Builder isWriteable(boolean isWriteable) { - this.isWriteable = isWriteable; - return this; - } + public abstract Builder location(Location location); - public Builder isBootable(boolean isBootable) { - this.isBootable = isBootable; - return this; - } + public abstract Builder osType(OsType osType); - @Override - public Image build() { - return Image.create(id, name, size, type, location, osType, isPublic, isWriteable, isBootable, cpuHotPlug, cpuHotUnPlug, - ramHotPlug, ramHotUnPlug, nicHotPlug, nicHotUnPlug, discVirtioHotPlug, discVirtioHotUnPlug); - } + public abstract Builder type(Type type); - public Builder fromImage(Image in) { - return this.id(in.id()).isBootable(in.isBootable()).isCpuHotPlug(in.isCpuHotPlug()).isCpuHotUnPlug(in.isCpuHotUnPlug()) - .isDiscVirtioHotPlug(in.isDiscVirtioHotPlug()).isDiscVirtioHotUnPlug(in.isDiscVirtioHotUnPlug()) - .isNicHotPlug(in.isNicHotPlug()).isNicHotUnPlug(in.isNicHotUnPlug()).isPublic(in.isPublic()) - .isRamHotPlug(in.isRamHotPlug()).isRamHotUnPlug(in.isRamHotUnPlug()).isWriteable(in.isWriteable()) - .location(in.location()).name(in.name()).osType(in.osType()).size(in.size()).type(in.type()); - } + public abstract Builder isPublic(Boolean isPublic); - @Override - public Builder self() { - return this; - } + public abstract Builder isWriteable(Boolean isWriteable); + + public abstract Builder isBootable(Boolean isBootable); + + public abstract Builder isCpuHotPlug(Boolean isCpuHotPlug); + + public abstract Builder isCpuHotUnPlug(Boolean isCpuHotUnPlug); + + public abstract Builder isRamHotPlug(Boolean isRamHotPlug); + + public abstract Builder isRamHotUnPlug(Boolean isRamHotUnPlug); + + public abstract Builder isNicHotPlug(Boolean isNicHotPlug); + + public abstract Builder isNicHotUnPlug(Boolean isNicHotUnPlug); + + public abstract Builder isDiscVirtioHotPlug(Boolean isDiscVirtioHotPlug); + + public abstract Builder isDiscVirtioHotUnPlug(Boolean isDiscVirtioHotUnPlug); + + public abstract Image build(); } http://git-wip-us.apache.org/repos/asf/jclouds/blob/5e82bbfa/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/IpBlock.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/IpBlock.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/IpBlock.java index 47741ff..cc2c999 100644 --- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/IpBlock.java +++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/IpBlock.java @@ -16,9 +16,14 @@ */ package org.jclouds.profitbricks.domain; +import static org.jclouds.profitbricks.util.Preconditions.checkIp; +import static org.jclouds.profitbricks.util.Preconditions.checkIps; + import com.google.auto.value.AutoValue; import com.google.common.collect.ImmutableList; + import java.util.List; + import org.jclouds.javax.annotation.Nullable; @AutoValue @@ -30,51 +35,39 @@ public abstract class IpBlock { public abstract List<PublicIp> publicIps(); + @Nullable public abstract List<String> ips(); - public static IpBlock create(String id, Location location, List<PublicIp> publicIps, List<String> ips) { - return new AutoValue_IpBlock(id, location, publicIps, ips != null ? ImmutableList.copyOf(ips) : ImmutableList.<String>of()); - } - public static Builder builder() { - return new Builder(); + return new AutoValue_IpBlock.Builder() + .publicIps(ImmutableList.<PublicIp>of()) + .ips(ImmutableList.<String>of()); } - public static final class Builder { + public abstract Builder toBuilder(); - private String id; - private Location location; - private List<PublicIp> publicIps; - private List<String> ips; + @AutoValue.Builder + public abstract static class Builder { - public Builder id(String id) { - this.id = id; - return this; - } + public abstract Builder id(String id); - public Builder location(Location location) { - this.location = location; - return this; - } + public abstract Builder location(Location location); - public Builder publicIps(List<PublicIp> publicIps) { - this.publicIps = publicIps; - return this; - } + public abstract Builder publicIps(List<PublicIp> publicIps); - public Builder ips(List<String> ips) { - this.ips = ips; - return this; - } + public abstract Builder ips(List<String> ips); + + abstract IpBlock autoBuild(); public IpBlock build() { - return IpBlock.create(id, location, publicIps, ips); - } + IpBlock ipBlock = autoBuild(); + checkIps(ipBlock.ips()); - public Builder fromIpBlock(IpBlock in) { - return this.id(in.id()).location(in.location()).publicIps(in.publicIps()).ips(in.ips()); + return ipBlock.toBuilder() + .publicIps(ImmutableList.copyOf(ipBlock.publicIps())) + .ips(ImmutableList.copyOf(ipBlock.ips())) + .autoBuild(); } - } @AutoValue @@ -85,41 +78,26 @@ public abstract class IpBlock { @Nullable public abstract String nicId(); - public static PublicIp create(String ip, String nicId) { - return new AutoValue_IpBlock_PublicIp(ip, nicId); - } - public static Builder builder() { - return new Builder(); - } - - public Builder toBuilder() { - return builder().fromPublicIp(this); + return new AutoValue_IpBlock_PublicIp.Builder(); } - public static final class Builder { + @AutoValue.Builder + public abstract static class Builder { - private String ip; - private String nicId; + public abstract Builder ip(String ip); - public Builder ip(String ip) { - this.ip = ip; - return this; - } + public abstract Builder nicId(String nicId); - public Builder nicId(String nicId) { - this.nicId = nicId; - return this; - } + abstract PublicIp autoBuild(); public PublicIp build() { - return PublicIp.create(ip, nicId); - } + PublicIp publicIp = autoBuild(); + checkIp(publicIp.ip()); - public Builder fromPublicIp(PublicIp in) { - return this.ip(in.ip()).nicId(in.nicId()); + return publicIp; } } - } + } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/5e82bbfa/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/LoadBalancer.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/LoadBalancer.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/LoadBalancer.java index 843999d..863890b 100644 --- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/LoadBalancer.java +++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/LoadBalancer.java @@ -16,16 +16,17 @@ */ package org.jclouds.profitbricks.domain; +import static org.jclouds.profitbricks.util.Preconditions.checkIp; +import static org.jclouds.profitbricks.util.Preconditions.checkLanId; + +import java.util.Date; +import java.util.List; + import com.google.auto.value.AutoValue; import com.google.common.base.Enums; -import static com.google.common.base.Preconditions.checkArgument; import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; -import static com.google.common.net.InetAddresses.isInetAddress; -import org.jclouds.javax.annotation.Nullable; -import java.util.Date; -import java.util.List; +import org.jclouds.javax.annotation.Nullable; @AutoValue public abstract class LoadBalancer { @@ -59,7 +60,7 @@ public abstract class LoadBalancer { public abstract String ip(); @Nullable - public abstract String lanId(); + public abstract Integer lanId(); @Nullable public abstract ProvisioningState state(); @@ -76,141 +77,76 @@ public abstract class LoadBalancer { @Nullable public abstract List<Firewall> firewalls(); - public static LoadBalancer create(String id, String name, Algorithm algorithm, DataCenter dataCenter, - boolean internetAccess, String ip, String lanId, ProvisioningState state, Date creationTime, - Date lastModificationTime, List<Server> balancedServers, List<Firewall> firewalls) { - return new AutoValue_LoadBalancer(id, name, algorithm, dataCenter, - internetAccess, ip, lanId, state, creationTime, lastModificationTime, - balancedServers != null ? ImmutableList.copyOf(balancedServers) : ImmutableList.<Server>of(), - firewalls != null ? ImmutableList.copyOf(firewalls) : ImmutableList.<Firewall>of()); - } - public static Builder builder() { - return new Builder(); + return new AutoValue_LoadBalancer.Builder() + .balancedServers(ImmutableList.<Server>of()) + .firewalls(ImmutableList.<Firewall>of()); } - private static void checkIp(String ip) { - if (ip != null) - checkArgument(isInetAddress(ip), "Invalid IP"); - } - - public static class Builder { - - private String id; - - private String name; - - private Algorithm algorithm; - - private DataCenter dataCenter; - - private boolean internetAccess; - - private String ip; - - private String lanId; - - private ProvisioningState state; + public abstract Builder toBuilder(); - private Date creationTime; + @AutoValue.Builder + public abstract static class Builder { - private Date lastModificationTime; + public abstract Builder id(String id); - public List<Server> balancedServers; + public abstract Builder name(String name); - private List<Firewall> firewalls; + public abstract Builder algorithm(Algorithm algorithm); - public Builder id(String id) { - this.id = id; - return this; - } - - public Builder name(String name) { - this.name = name; - return this; - } - - public Builder algorithm(Algorithm algorithm) { - this.algorithm = algorithm; - return this; - } + public abstract Builder dataCenter(DataCenter dataCenter); - public Builder dataCenter(DataCenter dataCenter) { - this.dataCenter = dataCenter; - return this; - } + public abstract Builder internetAccess(Boolean internetAccess); - public Builder internetAccess(boolean internetAccess) { - this.internetAccess = internetAccess; - return this; - } + public abstract Builder ip(String ip); - public Builder ip(String ip) { - this.ip = ip; - return this; - } + public abstract Builder lanId(Integer lanId); - public Builder lanId(String lanId) { - this.lanId = lanId; - return this; - } + public abstract Builder creationTime(Date creationTime); - public Builder creationTime(Date creationTime) { - this.creationTime = creationTime; - return this; - } + public abstract Builder state(ProvisioningState state); - public Builder state(ProvisioningState state) { - this.state = state; - return this; - } + public abstract Builder lastModificationTime(Date lastModificationTime); - public Builder lastModificationTime(Date lastModificationTime) { - this.lastModificationTime = lastModificationTime; - return this; - } + public abstract Builder balancedServers(List<Server> balancedServers); - public Builder balancedServers(List<Server> balancedServers) { - this.balancedServers = balancedServers; - return this; - } + public abstract Builder firewalls(List<Firewall> firewalls); - public Builder firewalls(List<Firewall> firewalls) { - this.firewalls = firewalls; - return this; - } + abstract LoadBalancer autoBuild(); public LoadBalancer build() { - checkIp(ip); - return LoadBalancer.create(id, name, algorithm, dataCenter, internetAccess, - ip, lanId, state, creationTime, lastModificationTime, balancedServers, firewalls); - } - - public Builder fromLoadBalancer(LoadBalancer in) { - return this.id(in.id()).name(in.name()).algorithm(in.algorithm()) - .dataCenter(in.dataCenter()).internetAccess(in.internetAccess()) - .ip(in.ip()).lanId(in.lanId()).state(in.state()).creationTime(in.creationTime()) - .lastModificationTime(in.lastModificationTime()).balancedServers(in.balancedServers()) - .firewalls(in.firewalls()); + LoadBalancer loadBalancer = autoBuild(); + if (loadBalancer.ip() != null) + checkIp(loadBalancer.ip()); + if (loadBalancer.lanId() != null) + checkLanId(loadBalancer.lanId()); + + return loadBalancer.toBuilder() + .balancedServers(ImmutableList.copyOf(loadBalancer.balancedServers())) + .firewalls(ImmutableList.copyOf(loadBalancer.firewalls())) + .autoBuild(); } } public static final class Request { public static CreatePayload.Builder creatingBuilder() { - return new CreatePayload.Builder(); + return new AutoValue_LoadBalancer_Request_CreatePayload.Builder() + .serverIds(ImmutableList.<String>of()) + .algorithm(Algorithm.ROUND_ROBIN); } public static UpdatePayload.Builder updatingBuilder() { - return new UpdatePayload.Builder(); + return new AutoValue_LoadBalancer_Request_UpdatePayload.Builder() + .algorithm(Algorithm.ROUND_ROBIN); } - public static RegisterPayload.Builder registerBuilder() { - return new RegisterPayload.Builder(); + public static RegisterPayload createRegisteringPaylod(String loadBalancerId, List<String> serverIds) { + return new AutoValue_LoadBalancer_Request_RegisterPayload(loadBalancerId, ImmutableList.copyOf(serverIds)); } - public static DeregisterPayload.Builder deregisterBuilder() { - return new DeregisterPayload.Builder(); + public static DeregisterPayload createDeregisteringPayload(String loadBalancerId, List<String> serverIds) { + return new AutoValue_LoadBalancer_Request_DeregisterPayload(loadBalancerId, ImmutableList.copyOf(serverIds)); } @AutoValue @@ -218,63 +154,48 @@ public abstract class LoadBalancer { public abstract String dataCenterId(); - public abstract String loadBalancerName(); + @Nullable + public abstract String name(); - public abstract Algorithm loadBalancerAlgorithm(); + public abstract Algorithm algorithm(); + @Nullable public abstract String ip(); - public abstract String lanId(); + @Nullable + public abstract Integer lanId(); public abstract List<String> serverIds(); + + public abstract Builder toBuilder(); - public static CreatePayload create(String dataCenterId, String loadBalancerName, Algorithm loadBalancerAlgorithm, String ip, String lanId, List<String> serverIds) { - return new AutoValue_LoadBalancer_Request_CreatePayload(dataCenterId, loadBalancerName, loadBalancerAlgorithm, ip, lanId, - serverIds != null ? ImmutableList.copyOf(serverIds) : Lists.<String>newArrayList()); - } + @AutoValue.Builder + public abstract static class Builder { - public static class Builder { + public abstract Builder dataCenterId(String dataCenterId); - public String dataCenterId; - public String loadBalancerName; - public Algorithm loadBalancerAlgorithm; - public String ip; - public String lanId; - public List<String> serverIds; + public abstract Builder name(String name); - public Builder dataCenterId(String dataCenterId) { - this.dataCenterId = dataCenterId; - return this; - } + public abstract Builder algorithm(Algorithm algorithm); - public Builder loadBalancerName(String loadBalancerName) { - this.loadBalancerName = loadBalancerName; - return this; - } + public abstract Builder ip(String ip); - public Builder loadBalancerAlgorithm(Algorithm loadBalancerAlgorithm) { - this.loadBalancerAlgorithm = loadBalancerAlgorithm; - return this; - } + public abstract Builder lanId(Integer lanId); - public Builder ip(String ip) { - this.ip = ip; - return this; - } + public abstract Builder serverIds(List<String> serverIds); - public Builder lanId(String lanId) { - this.lanId = lanId; - return this; - } - - public Builder serverIds(List<String> serverIds) { - this.serverIds = serverIds; - return this; - } + abstract CreatePayload autoBuild(); public CreatePayload build() { - checkIp(ip); - return CreatePayload.create(dataCenterId, loadBalancerName, loadBalancerAlgorithm, ip, lanId, serverIds); + CreatePayload payload = autoBuild(); + if (payload.ip() != null) + checkIp(payload.ip()); + if (payload.lanId() != null) + checkLanId(payload.lanId()); + + return payload.toBuilder() + .serverIds(ImmutableList.copyOf(payload.serverIds())) + .autoBuild(); } } } @@ -282,67 +203,19 @@ public abstract class LoadBalancer { @AutoValue public abstract static class RegisterPayload { - public abstract List<String> serverIds(); - public abstract String id(); - public static RegisterPayload create(List<String> serverIds, String id) { - return new AutoValue_LoadBalancer_Request_RegisterPayload( - serverIds != null ? ImmutableList.copyOf(serverIds) : Lists.<String>newArrayList(), id); - } - - public static class Builder { - - public List<String> serverIds; - public String id; - - public Builder serverIds(List<String> serverIds) { - this.serverIds = serverIds; - return this; - } - - public Builder id(String id) { - this.id = id; - return this; - } + public abstract List<String> serverIds(); - public RegisterPayload build() { - return RegisterPayload.create(serverIds, id); - } - } } @AutoValue public abstract static class DeregisterPayload { - public abstract List<String> serverIds(); - public abstract String id(); - public static DeregisterPayload create(List<String> serverIds, String id) { - return new AutoValue_LoadBalancer_Request_DeregisterPayload( - serverIds != null ? ImmutableList.copyOf(serverIds) : Lists.<String>newArrayList(), id); - } - - public static class Builder { - - public List<String> serverIds; - public String id; - - public Builder serverIds(List<String> serverIds) { - this.serverIds = serverIds; - return this; - } - - public Builder id(String id) { - this.id = id; - return this; - } + public abstract List<String> serverIds(); - public DeregisterPayload build() { - return DeregisterPayload.create(serverIds, id); - } - } } @AutoValue @@ -350,49 +223,33 @@ public abstract class LoadBalancer { public abstract String id(); + @Nullable public abstract String name(); - public abstract Algorithm loadBalancerAlgorithm(); + public abstract Algorithm algorithm(); + @Nullable public abstract String ip(); - public static UpdatePayload create(String id, String name, Algorithm loadBalancerAlgorithm, String ip) { - return new AutoValue_LoadBalancer_Request_UpdatePayload(id, name, loadBalancerAlgorithm, ip); - } + @AutoValue.Builder + public abstract static class Builder { - public static class Builder { + public abstract Builder id(String id); - public String id; + public abstract Builder name(String name); - public String name; + public abstract Builder algorithm(Algorithm algorithm); - public Algorithm loadBalancerAlgorithm; + public abstract Builder ip(String ip); - public String ip; - - public Builder id(String id) { - this.id = id; - return this; - } - - public Builder loadBalancerName(String loadBalancerName) { - this.name = loadBalancerName; - return this; - } - - public Builder loadBalancerAlgorithm(Algorithm loadBalancerAlgorithm) { - this.loadBalancerAlgorithm = loadBalancerAlgorithm; - return this; - } - - public Builder ip(String ip) { - this.ip = ip; - return this; - } + abstract UpdatePayload autoBuild(); public UpdatePayload build() { - checkIp(ip); - return UpdatePayload.create(id, name, loadBalancerAlgorithm, ip); + UpdatePayload payload = autoBuild(); + if (payload.ip() != null) + checkIp(payload.ip()); + + return payload; } } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/5e82bbfa/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Location.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Location.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Location.java index 52acaf2..6102a42 100644 --- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Location.java +++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Location.java @@ -16,6 +16,8 @@ */ package org.jclouds.profitbricks.domain; +import com.google.common.base.Enums; + public enum Location { DE_FKB("de/fkb", "Germany, Karlsruhe"), @@ -41,11 +43,7 @@ public enum Location { } public static Location fromValue(String v) { - try { - return valueOf(v); - } catch (IllegalArgumentException ex) { - return UNRECOGNIZED; - } + return Enums.getIfPresent(Location.class, v).or(UNRECOGNIZED); } public static Location fromId(String id) { http://git-wip-us.apache.org/repos/asf/jclouds/blob/5e82bbfa/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Nic.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Nic.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Nic.java index 0f7427c..a7e421d 100644 --- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Nic.java +++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Nic.java @@ -16,14 +16,15 @@ */ package org.jclouds.profitbricks.domain; -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.net.InetAddresses.isInetAddress; +import static org.jclouds.profitbricks.util.Preconditions.checkIp; +import static org.jclouds.profitbricks.util.Preconditions.checkIps; +import static org.jclouds.profitbricks.util.Preconditions.checkLanId; +import static org.jclouds.profitbricks.util.Preconditions.checkMacAddress; import java.util.List; import com.google.auto.value.AutoValue; import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; import org.jclouds.javax.annotation.Nullable; @@ -39,9 +40,11 @@ public abstract class Nic { @Nullable public abstract String dataCenterId(); - public abstract int lanId(); + @Nullable + public abstract Integer lanId(); - public abstract boolean internetAccess(); + @Nullable + public abstract Boolean internetAccess(); @Nullable public abstract String serverId(); @@ -53,9 +56,10 @@ public abstract class Nic { public abstract String macAddress(); @Nullable - public abstract Firewall firewalls(); + public abstract Firewall firewall(); - public abstract boolean dhcpActive(); + @Nullable + public abstract Boolean dhcpActive(); @Nullable public abstract String gatewayIp(); @@ -63,158 +67,81 @@ public abstract class Nic { @Nullable public abstract ProvisioningState state(); - public static Nic create(String id, String name, String dataCenterId, int lanId, boolean internetAccess, - String serverId, List<String> ips, String macAddress, Firewall firewall, boolean dhcpActive, - String gatewayIp, ProvisioningState state) { - return new AutoValue_Nic(id, name, dataCenterId, lanId, internetAccess, serverId, - ips != null ? ImmutableList.copyOf(ips) : ImmutableList.<String>of(), macAddress, - firewall, dhcpActive, gatewayIp, state); - } - public static Builder builder() { - return new Builder(); + return new AutoValue_Nic.Builder() + .ips(ImmutableList.<String>of()); } - public Builder toBuilder() { - return builder().fromNic(this); - } - - private static void checkIp(String ip) { - if (ip != null) - checkArgument(isInetAddress(ip), "Invalid IP"); - } - - private static void checkIps(List<String> ips) { - for (String ip : ips) - checkIp(ip); - } + public abstract Builder toBuilder(); - public static class Builder { + @AutoValue.Builder + public abstract static class Builder { - public String id; + public abstract Builder id(String id); - public String name; + public abstract Builder name(String name); - public String dataCenterId; + public abstract Builder dataCenterId(String dataCenterId); - public int lanId; + public abstract Builder lanId(Integer lanId); - public boolean internetAccess; + public abstract Builder internetAccess(Boolean internetAccess); - public String serverId; + public abstract Builder serverId(String serverId); - @Nullable - public List<String> ips; + public abstract Builder ips(List<String> ips); - public String macAddress; + public abstract Builder macAddress(String macAddress); - public Firewall firewall; + public abstract Builder firewall(Firewall firewall); - public boolean dhcpActive; + public abstract Builder dhcpActive(Boolean dhcpActive); - public String gatewayIp; + public abstract Builder gatewayIp(String gatewayIp); - public ProvisioningState state; + public abstract Builder state(ProvisioningState state); - public Builder() { - this.ips = Lists.newArrayList(); - } - - public Builder id(String id) { - this.id = id; - return this; - } - - public Builder name(String name) { - this.name = name; - return this; - } - - public Builder dataCenterId(String dataCenterId) { - this.dataCenterId = dataCenterId; - return this; - } - - public Builder lanId(int lanId) { - this.lanId = lanId; - return this; - } - - public Builder internetAccess(boolean internetAccess) { - this.internetAccess = internetAccess; - return this; - } - - public Builder serverId(String serverId) { - this.serverId = serverId; - return this; - } - - public Builder ips(List<String> ips) { - this.ips = ips; - return this; - } - - public Builder ip(String ip) { - this.ips.add(ip); - return this; - } - - public Builder macAddress(String macAddress) { - this.macAddress = macAddress; - return this; - } - - public Builder dhcpActive(boolean dhcpActive) { - this.dhcpActive = dhcpActive; - return this; - } - - public Builder gatewayIp(String gatewayIp) { - this.gatewayIp = gatewayIp; - return this; - } - - public Builder state(ProvisioningState state) { - this.state = state; - return this; - } - - public Builder firewall(Firewall firewall) { - this.firewall = firewall; - return this; - } + abstract Nic autoBuild(); public Nic build() { - checkIps(ips); - return Nic.create(id, name, dataCenterId, lanId, internetAccess, serverId, ips, - macAddress, firewall, dhcpActive, gatewayIp, state); - } + Nic nic = autoBuild(); + if (nic.ips() != null) + checkIps(nic.ips()); + if (nic.gatewayIp() != null) + checkIp(nic.gatewayIp()); + if (nic.lanId() != null) + checkLanId(nic.lanId()); + if (nic.macAddress() != null) + checkMacAddress(nic.macAddress()); - private Builder fromNic(Nic in) { - return this.id(in.id()).name(in.name()).lanId(in.lanId()).internetAccess(in.internetAccess()) - .serverId(in.serverId()).ips(in.ips()).macAddress(in.macAddress()).dhcpActive(in.dhcpActive()) - .gatewayIp(in.gatewayIp()).dataCenterId(dataCenterId); + return nic.toBuilder() + .ips(ImmutableList.copyOf(nic.ips())) + .autoBuild(); } + } public static final class Request { public static CreatePayload.Builder creatingBuilder() { - return new CreatePayload.Builder(); + return new AutoValue_Nic_Request_CreatePayload.Builder(); } public static UpdatePayload.Builder updatingBuilder() { - return new UpdatePayload.Builder(); + return new AutoValue_Nic_Request_UpdatePayload.Builder(); } public static SetInternetAccessPayload.Builder setInternetAccessBuilder() { - return new SetInternetAccessPayload.Builder(); + return new AutoValue_Nic_Request_SetInternetAccessPayload.Builder(); } @AutoValue public abstract static class CreatePayload { + public abstract String serverId(); + + public abstract int lanId(); + @Nullable public abstract String ip(); @@ -224,54 +151,30 @@ public abstract class Nic { @Nullable public abstract Boolean dhcpActive(); - public abstract String serverId(); + @AutoValue.Builder + public abstract static class Builder { - public abstract int lanId(); + public abstract Builder serverId(String serverId); - public static CreatePayload create(String ip, String name, Boolean dhcpActive, String serverId, int lanId) { - return new AutoValue_Nic_Request_CreatePayload(ip, name, dhcpActive, serverId, lanId); - } + public abstract Builder lanId(int lanId); - public static class Builder { + public abstract Builder ip(String ip); - private String ip; - private String name; - private Boolean dhcpActive; - private String serverId; - private int lanId; + public abstract Builder name(String name); - public Builder ip(String ip) { - this.ip = ip; - return this; - } + public abstract Builder dhcpActive(Boolean dhcpActive); - public Builder name(String name) { - this.name = name; - return this; - } - - public Builder dhcpActive(Boolean dhcpActive) { - this.dhcpActive = dhcpActive; - return this; - } - - public Builder serverId(String serverId) { - this.serverId = serverId; - return this; - } - - public Builder lanId(int lanId) { - this.lanId = lanId; - return this; - } + abstract CreatePayload autoBuild(); public CreatePayload build() { - checkIp(ip); - return CreatePayload.create(ip, name, dhcpActive, serverId, lanId); - } + CreatePayload payload = autoBuild(); + if (payload.ip() != null) + checkIp(payload.ip()); + checkLanId(payload.lanId()); + return payload; + } } - } @AutoValue @@ -288,48 +191,32 @@ public abstract class Nic { @Nullable public abstract Boolean dhcpActive(); - public abstract int lanId(); + @Nullable + public abstract Integer lanId(); - public static UpdatePayload create(String id, String ip, String name, Boolean dhcpActive, int lanId) { - return new AutoValue_Nic_Request_UpdatePayload(id, ip, name, dhcpActive, lanId); - } + @AutoValue.Builder + public abstract static class Builder { - public static class Builder { + public abstract Builder id(String id); - private String id; - private String ip; - private String name; - private Boolean dhcpActive; - private int lanId; + public abstract Builder ip(String ip); - public Builder ip(String ip) { - this.ip = ip; - return this; - } + public abstract Builder name(String name); - public Builder name(String name) { - this.name = name; - return this; - } - - public Builder dhcpActive(Boolean dhcpActive) { - this.dhcpActive = dhcpActive; - return this; - } + public abstract Builder dhcpActive(Boolean dhcpActive); - public Builder lanId(int lanId) { - this.lanId = lanId; - return this; - } + public abstract Builder lanId(Integer lanId); - public Builder id(String id) { - this.id = id; - return this; - } + abstract UpdatePayload autoBuild(); public UpdatePayload build() { - checkIp(ip); - return UpdatePayload.create(id, ip, name, dhcpActive, lanId); + UpdatePayload payload = autoBuild(); + if (payload.ip() != null) + checkIp(payload.ip()); + if (payload.lanId() != null) + checkLanId(payload.lanId()); + + return payload; } } } @@ -343,35 +230,19 @@ public abstract class Nic { public abstract boolean internetAccess(); - public static SetInternetAccessPayload create(String dataCenterId, int lanId, boolean internetAccess) { - return new AutoValue_Nic_Request_SetInternetAccessPayload(dataCenterId, lanId, internetAccess); - } + @AutoValue.Builder + public abstract static class Builder { - public static class Builder { + public abstract Builder dataCenterId(String dataCenterId); - public String dataCenterId; - public int lanId; - public boolean internetAccess; + public abstract Builder lanId(int lanId); - public Builder dataCenterId(String dataCenterId) { - this.dataCenterId = dataCenterId; - return this; - } + public abstract Builder internetAccess(boolean internetAccess); - public Builder lanId(int lanId) { - this.lanId = lanId; - return this; - } + public abstract SetInternetAccessPayload build(); - public Builder internetAccess(boolean internetAccess) { - this.internetAccess = internetAccess; - return this; - } - - public SetInternetAccessPayload build() { - return SetInternetAccessPayload.create(dataCenterId, lanId, internetAccess); - } } } } + } http://git-wip-us.apache.org/repos/asf/jclouds/blob/5e82bbfa/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/OsType.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/OsType.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/OsType.java index c21f1c4..25bc70b 100644 --- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/OsType.java +++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/OsType.java @@ -16,15 +16,13 @@ */ package org.jclouds.profitbricks.domain; +import com.google.common.base.Enums; + public enum OsType { WINDOWS, LINUX, OTHER, UNRECOGNIZED; public static OsType fromValue(String v) { - try { - return valueOf(v); - } catch (IllegalArgumentException ex) { - return UNRECOGNIZED; - } + return Enums.getIfPresent(OsType.class, v).or(UNRECOGNIZED); } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/5e82bbfa/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Provisionable.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Provisionable.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Provisionable.java new file mode 100644 index 0000000..101f154 --- /dev/null +++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Provisionable.java @@ -0,0 +1,25 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jclouds.profitbricks.domain; + +/** + * Marker interface for {@link org.jclouds.profitbricks.domain.Image} and + * {@link org.jclouds.profitbricks.domain.Snapshot} + */ +public interface Provisionable { + +} http://git-wip-us.apache.org/repos/asf/jclouds/blob/5e82bbfa/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/ProvisioningState.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/ProvisioningState.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/ProvisioningState.java index 833e979..d00342e 100644 --- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/ProvisioningState.java +++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/ProvisioningState.java @@ -16,15 +16,13 @@ */ package org.jclouds.profitbricks.domain; +import com.google.common.base.Enums; + public enum ProvisioningState { INACTIVE, INPROCESS, AVAILABLE, DELETED, ERROR, UNRECOGNIZED; public static ProvisioningState fromValue(String value) { - try { - return valueOf(value); - } catch (IllegalArgumentException e) { - return UNRECOGNIZED; - } + return Enums.getIfPresent(ProvisioningState.class, value).or(UNRECOGNIZED); } }
