Jclouds-458: Changes to the GCS structure
Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/commit/b5725e5a Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/tree/b5725e5a Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/diff/b5725e5a Branch: refs/heads/1.8.x Commit: b5725e5a016bd61acc87c06d28b452a8c7283561 Parents: 8d997c0 Author: hsbhathiya <[email protected]> Authored: Sun Aug 24 11:17:32 2014 +0530 Committer: Andrew Gaul <[email protected]> Committed: Wed Sep 10 15:04:41 2014 -0700 ---------------------------------------------------------------------- .../binders/BucketAccessControlsBinder.java | 42 ++++ .../binders/BucketBinder.java | 43 +++++ .../DefaultObjectAccessControlsBinder.java | 43 +++++ .../binders/ObjectAccessControlsBinder.java | 43 +++++ .../config/GoogleCloudStorageParserModule.java | 3 +- .../domain/BucketTemplate.java | 191 ------------------ .../DefaultObjectAccessControlsTemplate.java | 65 ------- .../domain/ObjectAccessControlsTemplate.java | 65 ------- .../domain/templates/BucketTemplate.java | 193 +++++++++++++++++++ .../DefaultObjectAccessControlsTemplate.java | 65 +++++++ .../templates/ObjectAccessControlsTemplate.java | 65 +++++++ .../features/BucketAccessControlsApi.java | 2 +- .../googlecloudstorage/features/BucketApi.java | 4 +- .../DefaultObjectAccessControlsApi.java | 4 +- .../features/ObjectAccessControlsApi.java | 4 +- .../handlers/BucketAccessControlsBinder.java | 42 ---- .../handlers/BucketBinder.java | 43 ----- .../DefaultObjectAccessControlsBinder.java | 43 ----- .../handlers/ObjectAccessControlsBinder.java | 43 ----- .../BucketAccessControlsApiLiveTest.java | 2 +- .../features/BucketApiExpectTest.java | 2 +- .../features/BucketApiLiveTest.java | 2 +- ...efaultObjectAccessControlsApiExpectTest.java | 2 +- .../DefaultObjectAccessControlsApiLiveTest.java | 4 +- .../ObjectAccessControlsApiExpectTest.java | 2 +- 25 files changed, 510 insertions(+), 507 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b5725e5a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/BucketAccessControlsBinder.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/BucketAccessControlsBinder.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/BucketAccessControlsBinder.java new file mode 100644 index 0000000..ffa9959 --- /dev/null +++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/BucketAccessControlsBinder.java @@ -0,0 +1,42 @@ +/* + * 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.googlecloudstorage.binders; + +import java.util.Map; + +import javax.inject.Inject; +import org.jclouds.googlecloudstorage.domain.BucketAccessControls; +import org.jclouds.http.HttpRequest; +import org.jclouds.rest.MapBinder; +import org.jclouds.rest.binders.BindToJsonPayload; + +public class BucketAccessControlsBinder implements MapBinder { + + @Inject + private BindToJsonPayload jsonBinder; + + @Override + public <R extends HttpRequest> R bindToRequest(R request, Map<String, Object> postParams) { + BucketAccessControls postBucket = (BucketAccessControls) postParams.get("BACLInsert"); + return bindToRequest(request, postBucket); + } + + @Override + public <R extends HttpRequest> R bindToRequest(R request, Object input) { + return jsonBinder.bindToRequest(request, input); + } +} http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b5725e5a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/BucketBinder.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/BucketBinder.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/BucketBinder.java new file mode 100644 index 0000000..1aa8dd9 --- /dev/null +++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/BucketBinder.java @@ -0,0 +1,43 @@ +/* + * 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.googlecloudstorage.binders; + +import java.util.Map; + +import javax.inject.Inject; + +import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate; +import org.jclouds.http.HttpRequest; +import org.jclouds.rest.MapBinder; +import org.jclouds.rest.binders.BindToJsonPayload; + +public class BucketBinder implements MapBinder { + + @Inject + private BindToJsonPayload jsonBinder; + + @Override + public <R extends HttpRequest> R bindToRequest(R request, Map<String, Object> postParams) throws IllegalArgumentException { + BucketTemplate postBucket = (BucketTemplate) postParams.get("template"); + return bindToRequest(request, postBucket); + } + + @Override + public <R extends HttpRequest> R bindToRequest(R request, Object input) { + return jsonBinder.bindToRequest(request, input); + } +} http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b5725e5a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/DefaultObjectAccessControlsBinder.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/DefaultObjectAccessControlsBinder.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/DefaultObjectAccessControlsBinder.java new file mode 100644 index 0000000..0588eec --- /dev/null +++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/DefaultObjectAccessControlsBinder.java @@ -0,0 +1,43 @@ +/* + * 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.googlecloudstorage.binders; + +import java.util.Map; + +import javax.inject.Inject; + +import org.jclouds.googlecloudstorage.domain.templates.DefaultObjectAccessControlsTemplate; +import org.jclouds.http.HttpRequest; +import org.jclouds.rest.MapBinder; +import org.jclouds.rest.binders.BindToJsonPayload; + +public class DefaultObjectAccessControlsBinder implements MapBinder { + + @Inject + private BindToJsonPayload jsonBinder; + + @Override + public <R extends HttpRequest> R bindToRequest(R request, Map<String, Object> postParams) { + DefaultObjectAccessControlsTemplate template = (DefaultObjectAccessControlsTemplate) postParams.get("template"); + return bindToRequest(request, template); + } + + @Override + public <R extends HttpRequest> R bindToRequest(R request, Object input) { + return jsonBinder.bindToRequest(request, input); + } +} http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b5725e5a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/ObjectAccessControlsBinder.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/ObjectAccessControlsBinder.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/ObjectAccessControlsBinder.java new file mode 100644 index 0000000..77218db --- /dev/null +++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/ObjectAccessControlsBinder.java @@ -0,0 +1,43 @@ +/* + * 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.googlecloudstorage.binders; + +import java.util.Map; + +import javax.inject.Inject; + +import org.jclouds.googlecloudstorage.domain.templates.ObjectAccessControlsTemplate; +import org.jclouds.http.HttpRequest; +import org.jclouds.rest.MapBinder; +import org.jclouds.rest.binders.BindToJsonPayload; + +public class ObjectAccessControlsBinder implements MapBinder { + + @Inject + private BindToJsonPayload jsonBinder; + + @Override + public <R extends HttpRequest> R bindToRequest(R request, Map<String, Object> postParams) throws IllegalArgumentException{ + ObjectAccessControlsTemplate postBucket = (ObjectAccessControlsTemplate) postParams.get("template"); + return bindToRequest(request, postBucket); + } + + @Override + public <R extends HttpRequest> R bindToRequest(R request, Object input) { + return jsonBinder.bindToRequest(request, input); + } +} http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b5725e5a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/config/GoogleCloudStorageParserModule.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/config/GoogleCloudStorageParserModule.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/config/GoogleCloudStorageParserModule.java index e5eff6b..f1de81a 100644 --- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/config/GoogleCloudStorageParserModule.java +++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/config/GoogleCloudStorageParserModule.java @@ -18,9 +18,10 @@ package org.jclouds.googlecloudstorage.config; import java.lang.reflect.Type; import java.util.Map; + import javax.inject.Singleton; -import org.jclouds.googlecloudstorage.domain.BucketTemplate; +import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate; import org.jclouds.json.config.GsonModule.DateAdapter; import org.jclouds.json.config.GsonModule.Iso8601DateAdapter; import org.jclouds.oauth.v2.domain.ClaimSet; http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b5725e5a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/BucketTemplate.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/BucketTemplate.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/BucketTemplate.java deleted file mode 100644 index a14ccb0..0000000 --- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/BucketTemplate.java +++ /dev/null @@ -1,191 +0,0 @@ -/* - * 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.googlecloudstorage.domain; - -import java.util.Set; - -import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.Location; -import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.StorageClass; -import org.jclouds.googlecloudstorage.domain.internal.BucketCors; -import org.jclouds.googlecloudstorage.domain.internal.BucketLifeCycle; -import org.jclouds.googlecloudstorage.domain.internal.Logging; -import org.jclouds.googlecloudstorage.domain.internal.Owner; -import org.jclouds.googlecloudstorage.domain.internal.Versioning; -import org.jclouds.googlecloudstorage.domain.internal.Website; - -import com.google.common.collect.Sets; - -public class BucketTemplate { - - protected String name; - protected Long projectNumber; - protected Set<BucketAccessControls> acl = Sets.newHashSet(); - protected Set<DefaultObjectAccessControls> defaultObjectAccessControls = Sets.newHashSet(); - protected Owner owner; - protected Location location; - protected Website website; - protected Logging logging; - protected Versioning versioning; - protected Set<BucketCors> cors = Sets.newHashSet(); - protected BucketLifeCycle lifeCycle; - protected StorageClass storageClass; - - public BucketTemplate name(String name) { - this.name = name; - return this; - } - - public BucketTemplate projectNumber(Long projectNumber) { - this.projectNumber = projectNumber; - return this; - } - - public BucketTemplate owner(Owner owner) { - this.owner = owner; - return this; - } - - public BucketTemplate location(Location location) { - this.location = location; - return this; - } - - public BucketTemplate website(Website website) { - this.website = website; - return this; - } - - public BucketTemplate logging(Logging logging) { - this.logging = logging; - return this; - } - - public BucketTemplate versioning(Versioning versioning) { - this.versioning = versioning; - return this; - } - - public BucketTemplate lifeCycle(BucketLifeCycle lifeCycle) { - this.lifeCycle = lifeCycle; - return this; - } - - public BucketTemplate storageClass(StorageClass storageClass) { - this.storageClass = storageClass; - return this; - } - - public BucketTemplate addAcl(BucketAccessControls bucketAccessControls) { - this.acl.add(bucketAccessControls); - return this; - } - - public BucketTemplate acl(Set<BucketAccessControls> acl) { - - this.acl.addAll(acl); - return this; - } - - public BucketTemplate addDefaultObjectAccessControls(DefaultObjectAccessControls oac) { - this.defaultObjectAccessControls.add(oac); - return this; - } - - public BucketTemplate defaultObjectAccessControls(Set<DefaultObjectAccessControls> defaultObjectAcl) { - this.defaultObjectAccessControls.addAll(defaultObjectAcl); - return this; - } - - public BucketTemplate addCORS(BucketCors cors) { - this.cors.add(cors); - return this; - } - - public BucketTemplate cors(Set<BucketCors> cors) { - this.cors.addAll(cors); - return this; - } - - public Long getProjectNumber() { - return projectNumber; - } - - public String getName() { - return name; - } - - public Set<BucketAccessControls> getAcl() { - return acl; - } - - public Set<DefaultObjectAccessControls> getDefaultObjectAccessControls() { - return defaultObjectAccessControls; - } - - public Owner getOwner() { - return owner; - } - - public Location getLocation() { - return location; - } - - public Website getWebsite() { - return website; - } - - public Logging getLogging() { - return logging; - } - - public Versioning getVersioning() { - return versioning; - } - - public Set<BucketCors> getCors() { - return cors; - } - - public BucketLifeCycle getLifeCycle() { - return lifeCycle; - } - - public StorageClass getStorageClass() { - return storageClass; - } - - public static Builder builder() { - return new Builder(); - } - - public static BucketTemplate fromBucketsTemplate(BucketTemplate bucketTemplate) { - return Builder.fromBucketsTemplate(bucketTemplate); - } - - public static class Builder { - - public static BucketTemplate fromBucketsTemplate(BucketTemplate in) { - return new BucketTemplate().name(in.getName()).projectNumber(in.getProjectNumber()).acl(in.getAcl()) - .defaultObjectAccessControls(in.getDefaultObjectAccessControls()).owner(in.getOwner()) - .location(in.getLocation()).website(in.getWebsite()).logging(in.getLogging()) - .versioning(in.getVersioning()).cors(in.getCors()).lifeCycle(in.getLifeCycle()) - .storageClass(in.getStorageClass()); - } - - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b5725e5a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/DefaultObjectAccessControlsTemplate.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/DefaultObjectAccessControlsTemplate.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/DefaultObjectAccessControlsTemplate.java deleted file mode 100644 index 176e9e8..0000000 --- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/DefaultObjectAccessControlsTemplate.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * 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.googlecloudstorage.domain; - -import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.ObjectRole; - -/** - * Represents a Object Access Control Resource - * - * @see <a href= "https://developers.google.com/storage/docs/json_api/v1/objectAccessControls"/> - */ -public class DefaultObjectAccessControlsTemplate { - - private String entity; - private ObjectRole role; - - public DefaultObjectAccessControlsTemplate role(ObjectRole role) { - this.role = role; - return this; - } - - public DefaultObjectAccessControlsTemplate entity(String entity) { - this.entity = entity; - return this; - } - - public String getEntity() { - return entity; - } - - public ObjectRole getRole() { - return role; - } - - public static Builder builder() { - return new Builder(); - } - - public static DefaultObjectAccessControlsTemplate fromObjectAccessControlsTemplate( - DefaultObjectAccessControlsTemplate objectAccessControlsTemplate) { - return Builder.fromObjectAccessControlsTemplate(objectAccessControlsTemplate); - } - - public static class Builder { - - public static DefaultObjectAccessControlsTemplate fromObjectAccessControlsTemplate( - DefaultObjectAccessControlsTemplate in) { - return new DefaultObjectAccessControlsTemplate().role(in.getRole()).entity(in.getEntity()); - } - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b5725e5a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ObjectAccessControlsTemplate.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ObjectAccessControlsTemplate.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ObjectAccessControlsTemplate.java deleted file mode 100644 index 7740207..0000000 --- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ObjectAccessControlsTemplate.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * 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.googlecloudstorage.domain; - -import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.ObjectRole; - -/** - * Represents a Object Access Control Resource. - * - * @see <a href= "https://developers.google.com/storage/docs/json_api/v1/objectAccessControls"/> - */ -public class ObjectAccessControlsTemplate { - - protected String entity; - protected ObjectRole role; - - public ObjectAccessControlsTemplate role(ObjectRole role) { - this.role = role; - return this; - } - - public ObjectAccessControlsTemplate entity(String entity) { - this.entity = entity; - return this; - } - - public String getEntity() { - return entity; - } - - public ObjectRole getRole() { - return role; - } - - public static Builder builder() { - return new Builder(); - } - - public static ObjectAccessControlsTemplate fromObjectAccessControlsTemplate( - ObjectAccessControlsTemplate objectAccessControlsTemplate) { - return Builder.fromObjectAccessControlsTemplate(objectAccessControlsTemplate); - } - - public static class Builder { - - public static ObjectAccessControlsTemplate fromObjectAccessControlsTemplate(ObjectAccessControlsTemplate in) { - return new ObjectAccessControlsTemplate().role(in.getRole()).entity(in.getEntity()); - } - - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b5725e5a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/BucketTemplate.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/BucketTemplate.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/BucketTemplate.java new file mode 100644 index 0000000..b2ea6da --- /dev/null +++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/BucketTemplate.java @@ -0,0 +1,193 @@ +/* + * 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.googlecloudstorage.domain.templates; + +import java.util.Set; + +import org.jclouds.googlecloudstorage.domain.BucketAccessControls; +import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControls; +import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.Location; +import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.StorageClass; +import org.jclouds.googlecloudstorage.domain.internal.BucketCors; +import org.jclouds.googlecloudstorage.domain.internal.BucketLifeCycle; +import org.jclouds.googlecloudstorage.domain.internal.Logging; +import org.jclouds.googlecloudstorage.domain.internal.Owner; +import org.jclouds.googlecloudstorage.domain.internal.Versioning; +import org.jclouds.googlecloudstorage.domain.internal.Website; + +import com.google.common.collect.Sets; + +public class BucketTemplate { + + protected String name; + protected Long projectNumber; + protected Set<BucketAccessControls> acl = Sets.newHashSet(); + protected Set<DefaultObjectAccessControls> defaultObjectAccessControls = Sets.newHashSet(); + protected Owner owner; + protected Location location; + protected Website website; + protected Logging logging; + protected Versioning versioning; + protected Set<BucketCors> cors = Sets.newHashSet(); + protected BucketLifeCycle lifeCycle; + protected StorageClass storageClass; + + public BucketTemplate name(String name) { + this.name = name; + return this; + } + + public BucketTemplate projectNumber(Long projectNumber) { + this.projectNumber = projectNumber; + return this; + } + + public BucketTemplate owner(Owner owner) { + this.owner = owner; + return this; + } + + public BucketTemplate location(Location location) { + this.location = location; + return this; + } + + public BucketTemplate website(Website website) { + this.website = website; + return this; + } + + public BucketTemplate logging(Logging logging) { + this.logging = logging; + return this; + } + + public BucketTemplate versioning(Versioning versioning) { + this.versioning = versioning; + return this; + } + + public BucketTemplate lifeCycle(BucketLifeCycle lifeCycle) { + this.lifeCycle = lifeCycle; + return this; + } + + public BucketTemplate storageClass(StorageClass storageClass) { + this.storageClass = storageClass; + return this; + } + + public BucketTemplate addAcl(BucketAccessControls bucketAccessControls) { + this.acl.add(bucketAccessControls); + return this; + } + + public BucketTemplate acl(Set<BucketAccessControls> acl) { + + this.acl.addAll(acl); + return this; + } + + public BucketTemplate addDefaultObjectAccessControls(DefaultObjectAccessControls oac) { + this.defaultObjectAccessControls.add(oac); + return this; + } + + public BucketTemplate defaultObjectAccessControls(Set<DefaultObjectAccessControls> defaultObjectAcl) { + this.defaultObjectAccessControls.addAll(defaultObjectAcl); + return this; + } + + public BucketTemplate addCORS(BucketCors cors) { + this.cors.add(cors); + return this; + } + + public BucketTemplate cors(Set<BucketCors> cors) { + this.cors.addAll(cors); + return this; + } + + public Long getProjectNumber() { + return projectNumber; + } + + public String getName() { + return name; + } + + public Set<BucketAccessControls> getAcl() { + return acl; + } + + public Set<DefaultObjectAccessControls> getDefaultObjectAccessControls() { + return defaultObjectAccessControls; + } + + public Owner getOwner() { + return owner; + } + + public Location getLocation() { + return location; + } + + public Website getWebsite() { + return website; + } + + public Logging getLogging() { + return logging; + } + + public Versioning getVersioning() { + return versioning; + } + + public Set<BucketCors> getCors() { + return cors; + } + + public BucketLifeCycle getLifeCycle() { + return lifeCycle; + } + + public StorageClass getStorageClass() { + return storageClass; + } + + public static Builder builder() { + return new Builder(); + } + + public static BucketTemplate fromBucketsTemplate(BucketTemplate bucketTemplate) { + return Builder.fromBucketsTemplate(bucketTemplate); + } + + public static class Builder { + + public static BucketTemplate fromBucketsTemplate(BucketTemplate in) { + return new BucketTemplate().name(in.getName()).projectNumber(in.getProjectNumber()).acl(in.getAcl()) + .defaultObjectAccessControls(in.getDefaultObjectAccessControls()).owner(in.getOwner()) + .location(in.getLocation()).website(in.getWebsite()).logging(in.getLogging()) + .versioning(in.getVersioning()).cors(in.getCors()).lifeCycle(in.getLifeCycle()) + .storageClass(in.getStorageClass()); + } + + } +} http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b5725e5a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/DefaultObjectAccessControlsTemplate.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/DefaultObjectAccessControlsTemplate.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/DefaultObjectAccessControlsTemplate.java new file mode 100644 index 0000000..e47da5c --- /dev/null +++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/DefaultObjectAccessControlsTemplate.java @@ -0,0 +1,65 @@ +/* + * 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.googlecloudstorage.domain.templates; + +import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.ObjectRole; + +/** + * Represents a Object Access Control Resource + * + * @see <a href= "https://developers.google.com/storage/docs/json_api/v1/objectAccessControls"/> + */ +public class DefaultObjectAccessControlsTemplate { + + private String entity; + private ObjectRole role; + + public DefaultObjectAccessControlsTemplate role(ObjectRole role) { + this.role = role; + return this; + } + + public DefaultObjectAccessControlsTemplate entity(String entity) { + this.entity = entity; + return this; + } + + public String getEntity() { + return entity; + } + + public ObjectRole getRole() { + return role; + } + + public static Builder builder() { + return new Builder(); + } + + public static DefaultObjectAccessControlsTemplate fromObjectAccessControlsTemplate( + DefaultObjectAccessControlsTemplate objectAccessControlsTemplate) { + return Builder.fromObjectAccessControlsTemplate(objectAccessControlsTemplate); + } + + public static class Builder { + + public static DefaultObjectAccessControlsTemplate fromObjectAccessControlsTemplate( + DefaultObjectAccessControlsTemplate in) { + return new DefaultObjectAccessControlsTemplate().role(in.getRole()).entity(in.getEntity()); + } + } +} http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b5725e5a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectAccessControlsTemplate.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectAccessControlsTemplate.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectAccessControlsTemplate.java new file mode 100644 index 0000000..e050ce3 --- /dev/null +++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectAccessControlsTemplate.java @@ -0,0 +1,65 @@ +/* + * 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.googlecloudstorage.domain.templates; + +import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.ObjectRole; + +/** + * Represents a Object Access Control Resource. + * + * @see <a href= "https://developers.google.com/storage/docs/json_api/v1/objectAccessControls"/> + */ +public class ObjectAccessControlsTemplate { + + protected String entity; + protected ObjectRole role; + + public ObjectAccessControlsTemplate role(ObjectRole role) { + this.role = role; + return this; + } + + public ObjectAccessControlsTemplate entity(String entity) { + this.entity = entity; + return this; + } + + public String getEntity() { + return entity; + } + + public ObjectRole getRole() { + return role; + } + + public static Builder builder() { + return new Builder(); + } + + public static ObjectAccessControlsTemplate fromObjectAccessControlsTemplate( + ObjectAccessControlsTemplate objectAccessControlsTemplate) { + return Builder.fromObjectAccessControlsTemplate(objectAccessControlsTemplate); + } + + public static class Builder { + + public static ObjectAccessControlsTemplate fromObjectAccessControlsTemplate(ObjectAccessControlsTemplate in) { + return new ObjectAccessControlsTemplate().role(in.getRole()).entity(in.getEntity()); + } + + } +} http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b5725e5a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java index 2d56cae..007073c 100644 --- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java +++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java @@ -30,9 +30,9 @@ import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import org.jclouds.Fallbacks.NullOnNotFoundOr404; +import org.jclouds.googlecloudstorage.binders.BucketAccessControlsBinder; import org.jclouds.googlecloudstorage.domain.BucketAccessControls; import org.jclouds.googlecloudstorage.domain.ListBucketAccessControls; -import org.jclouds.googlecloudstorage.handlers.BucketAccessControlsBinder; import org.jclouds.http.HttpResponse; import org.jclouds.javax.annotation.Nullable; import org.jclouds.oauth.v2.config.OAuthScopes; http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b5725e5a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketApi.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketApi.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketApi.java index 4b00b20..3f48520 100644 --- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketApi.java +++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketApi.java @@ -32,10 +32,10 @@ import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import org.jclouds.Fallbacks.NullOnNotFoundOr404; +import org.jclouds.googlecloudstorage.binders.BucketBinder; import org.jclouds.googlecloudstorage.domain.Bucket; -import org.jclouds.googlecloudstorage.domain.BucketTemplate; import org.jclouds.googlecloudstorage.domain.ListPage; -import org.jclouds.googlecloudstorage.handlers.BucketBinder; +import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate; import org.jclouds.googlecloudstorage.options.DeleteBucketOptions; import org.jclouds.googlecloudstorage.options.GetBucketOptions; import org.jclouds.googlecloudstorage.options.InsertBucketOptions; http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b5725e5a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApi.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApi.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApi.java index 91d1f52..29e5a89 100644 --- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApi.java +++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApi.java @@ -31,12 +31,12 @@ import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import org.jclouds.Fallbacks.NullOnNotFoundOr404; +import org.jclouds.googlecloudstorage.binders.DefaultObjectAccessControlsBinder; import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControls; import org.jclouds.googlecloudstorage.domain.ListDefaultObjectAccessControls; -import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControlsTemplate; import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.ObjectRole; -import org.jclouds.googlecloudstorage.handlers.DefaultObjectAccessControlsBinder; import org.jclouds.http.HttpResponse; +import org.jclouds.googlecloudstorage.domain.templates.DefaultObjectAccessControlsTemplate; import org.jclouds.javax.annotation.Nullable; import org.jclouds.oauth.v2.config.OAuthScopes; import org.jclouds.oauth.v2.filters.OAuthAuthenticationFilter; http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b5725e5a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApi.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApi.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApi.java index 87503a2..2836c8f 100644 --- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApi.java +++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApi.java @@ -31,10 +31,10 @@ import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import org.jclouds.Fallbacks.NullOnNotFoundOr404; +import org.jclouds.googlecloudstorage.binders.ObjectAccessControlsBinder; import org.jclouds.googlecloudstorage.domain.ListObjectAccessControls; import org.jclouds.googlecloudstorage.domain.ObjectAccessControls; -import org.jclouds.googlecloudstorage.domain.ObjectAccessControlsTemplate; -import org.jclouds.googlecloudstorage.handlers.ObjectAccessControlsBinder; +import org.jclouds.googlecloudstorage.domain.templates.ObjectAccessControlsTemplate; import org.jclouds.javax.annotation.Nullable; import org.jclouds.oauth.v2.config.OAuthScopes; import org.jclouds.oauth.v2.filters.OAuthAuthenticator; http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b5725e5a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/BucketAccessControlsBinder.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/BucketAccessControlsBinder.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/BucketAccessControlsBinder.java deleted file mode 100644 index b274c73..0000000 --- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/BucketAccessControlsBinder.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * 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.googlecloudstorage.handlers; - -import java.util.Map; - -import javax.inject.Inject; -import org.jclouds.googlecloudstorage.domain.BucketAccessControls; -import org.jclouds.http.HttpRequest; -import org.jclouds.rest.MapBinder; -import org.jclouds.rest.binders.BindToJsonPayload; - -public class BucketAccessControlsBinder implements MapBinder { - - @Inject - private BindToJsonPayload jsonBinder; - - @Override - public <R extends HttpRequest> R bindToRequest(R request, Map<String, Object> postParams) { - BucketAccessControls postBucket = (BucketAccessControls) postParams.get("BACLInsert"); - return bindToRequest(request, postBucket); - } - - @Override - public <R extends HttpRequest> R bindToRequest(R request, Object input) { - return jsonBinder.bindToRequest(request, input); - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b5725e5a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/BucketBinder.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/BucketBinder.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/BucketBinder.java deleted file mode 100644 index fab330d..0000000 --- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/BucketBinder.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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.googlecloudstorage.handlers; - -import java.util.Map; - -import javax.inject.Inject; - -import org.jclouds.googlecloudstorage.domain.BucketTemplate; -import org.jclouds.http.HttpRequest; -import org.jclouds.rest.MapBinder; -import org.jclouds.rest.binders.BindToJsonPayload; - -public class BucketBinder implements MapBinder { - - @Inject - private BindToJsonPayload jsonBinder; - - @Override - public <R extends HttpRequest> R bindToRequest(R request, Map<String, Object> postParams) throws IllegalArgumentException { - BucketTemplate postBucket = (BucketTemplate) postParams.get("template"); - return bindToRequest(request, postBucket); - } - - @Override - public <R extends HttpRequest> R bindToRequest(R request, Object input) { - return jsonBinder.bindToRequest(request, input); - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b5725e5a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/DefaultObjectAccessControlsBinder.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/DefaultObjectAccessControlsBinder.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/DefaultObjectAccessControlsBinder.java deleted file mode 100644 index 97ea524..0000000 --- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/DefaultObjectAccessControlsBinder.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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.googlecloudstorage.handlers; - -import java.util.Map; - -import javax.inject.Inject; - -import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControlsTemplate; -import org.jclouds.http.HttpRequest; -import org.jclouds.rest.MapBinder; -import org.jclouds.rest.binders.BindToJsonPayload; - -public class DefaultObjectAccessControlsBinder implements MapBinder { - - @Inject - private BindToJsonPayload jsonBinder; - - @Override - public <R extends HttpRequest> R bindToRequest(R request, Map<String, Object> postParams) { - DefaultObjectAccessControlsTemplate template = (DefaultObjectAccessControlsTemplate) postParams.get("template"); - return bindToRequest(request, template); - } - - @Override - public <R extends HttpRequest> R bindToRequest(R request, Object input) { - return jsonBinder.bindToRequest(request, input); - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b5725e5a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/ObjectAccessControlsBinder.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/ObjectAccessControlsBinder.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/ObjectAccessControlsBinder.java deleted file mode 100644 index e1f4eda..0000000 --- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/ObjectAccessControlsBinder.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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.googlecloudstorage.handlers; - -import java.util.Map; - -import javax.inject.Inject; - -import org.jclouds.googlecloudstorage.domain.ObjectAccessControlsTemplate; -import org.jclouds.http.HttpRequest; -import org.jclouds.rest.MapBinder; -import org.jclouds.rest.binders.BindToJsonPayload; - -public class ObjectAccessControlsBinder implements MapBinder { - - @Inject - private BindToJsonPayload jsonBinder; - - @Override - public <R extends HttpRequest> R bindToRequest(R request, Map<String, Object> postParams) throws IllegalArgumentException{ - ObjectAccessControlsTemplate postBucket = (ObjectAccessControlsTemplate) postParams.get("template"); - return bindToRequest(request, postBucket); - } - - @Override - public <R extends HttpRequest> R bindToRequest(R request, Object input) { - return jsonBinder.bindToRequest(request, input); - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b5725e5a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiLiveTest.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiLiveTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiLiveTest.java index ea3010c..ec0f97f 100644 --- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiLiveTest.java +++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiLiveTest.java @@ -23,10 +23,10 @@ import java.util.UUID; import org.jclouds.googlecloudstorage.domain.Bucket; import org.jclouds.googlecloudstorage.domain.BucketAccessControls; -import org.jclouds.googlecloudstorage.domain.BucketTemplate; import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.Role; import org.jclouds.googlecloudstorage.domain.ListBucketAccessControls; import org.jclouds.googlecloudstorage.domain.Resource.Kind; +import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate; import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiLiveTest; import org.testng.annotations.Test; http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b5725e5a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiExpectTest.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiExpectTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiExpectTest.java index a78bcb3..ad9f719 100644 --- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiExpectTest.java +++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiExpectTest.java @@ -25,9 +25,9 @@ import static org.testng.AssertJUnit.assertNull; import javax.ws.rs.core.MediaType; import org.jclouds.googlecloudstorage.domain.BucketAccessControls; -import org.jclouds.googlecloudstorage.domain.BucketTemplate; import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.Projection; import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.Role; +import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate; import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiExpectTest; import org.jclouds.googlecloudstorage.options.GetBucketOptions; import org.jclouds.googlecloudstorage.options.ListOptions; http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b5725e5a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java index 6726aee..7b0f268 100644 --- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java +++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java @@ -29,7 +29,6 @@ import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.Location; import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.ObjectRole; import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.Projection; import org.jclouds.googlecloudstorage.domain.Bucket; -import org.jclouds.googlecloudstorage.domain.BucketTemplate; import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControls; import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.Role; import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.StorageClass; @@ -38,6 +37,7 @@ import org.jclouds.googlecloudstorage.domain.Resource.Kind; import org.jclouds.googlecloudstorage.domain.internal.BucketCors; import org.jclouds.googlecloudstorage.domain.internal.Logging; import org.jclouds.googlecloudstorage.domain.internal.Versioning; +import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate; import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiLiveTest; import org.jclouds.googlecloudstorage.options.DeleteBucketOptions; import org.jclouds.googlecloudstorage.options.GetBucketOptions; http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b5725e5a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiExpectTest.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiExpectTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiExpectTest.java index 987605d..bf946ff 100644 --- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiExpectTest.java +++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiExpectTest.java @@ -24,8 +24,8 @@ import static org.testng.AssertJUnit.assertNull; import javax.ws.rs.core.MediaType; import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControls; -import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControlsTemplate; import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.ObjectRole; +import org.jclouds.googlecloudstorage.domain.templates.DefaultObjectAccessControlsTemplate; import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiExpectTest; import org.jclouds.googlecloudstorage.parse.DefaultObjectAclGetTest; import org.jclouds.googlecloudstorage.parse.DefaultObjectAclInsertTest; http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b5725e5a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java index 0f31914..ad908f5 100644 --- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java +++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java @@ -22,12 +22,12 @@ import static org.testng.Assert.assertNotNull; import java.util.UUID; import org.jclouds.googlecloudstorage.domain.Bucket; -import org.jclouds.googlecloudstorage.domain.BucketTemplate; import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControls; -import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControlsTemplate; import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.ObjectRole; import org.jclouds.googlecloudstorage.domain.ListDefaultObjectAccessControls; import org.jclouds.googlecloudstorage.domain.Resource.Kind; +import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate; +import org.jclouds.googlecloudstorage.domain.templates.DefaultObjectAccessControlsTemplate; import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiLiveTest; import org.testng.annotations.Test; http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b5725e5a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApiExpectTest.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApiExpectTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApiExpectTest.java index 7f87e45..adc0dbe 100644 --- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApiExpectTest.java +++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApiExpectTest.java @@ -24,7 +24,7 @@ import static org.testng.AssertJUnit.assertNull; import javax.ws.rs.core.MediaType; import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.ObjectRole; -import org.jclouds.googlecloudstorage.domain.ObjectAccessControlsTemplate; +import org.jclouds.googlecloudstorage.domain.templates.ObjectAccessControlsTemplate; import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiExpectTest; import org.jclouds.googlecloudstorage.parse.ObjectAclGetTest; import org.jclouds.googlecloudstorage.parse.ObjectAclInsertTest;
