From 973639a7b4092449106d5e300de16cc217da8eb1 Mon Sep 17 00:00:00 2001 From: Marco Ziccardi Date: Fri, 22 Jan 2016 10:34:30 +0100 Subject: [PATCH 1/2] Add Acl.of method to storage module --- .../java/com/google/gcloud/storage/Acl.java | 22 +++++++++++-------- .../com/google/gcloud/storage/AclTest.java | 4 ++-- .../google/gcloud/storage/BlobInfoTest.java | 4 ++-- .../google/gcloud/storage/BucketInfoTest.java | 6 ++--- .../gcloud/storage/SerializationTest.java | 10 ++++----- 5 files changed, 25 insertions(+), 21 deletions(-) diff --git a/gcloud-java-storage/src/main/java/com/google/gcloud/storage/Acl.java b/gcloud-java-storage/src/main/java/com/google/gcloud/storage/Acl.java index 0eca39f3b3e5..4203d79351b7 100644 --- a/gcloud-java-storage/src/main/java/com/google/gcloud/storage/Acl.java +++ b/gcloud-java-storage/src/main/java/com/google/gcloud/storage/Acl.java @@ -274,13 +274,7 @@ String toPb() { } } - /** - * Creates an ACL object. - * - * @param entity the entity for this ACL object - * @param role the role to associate to the {@code entity} object - */ - public Acl(Entity entity, Role role) { + private Acl(Entity entity, Role role) { this.entity = entity; this.role = role; } @@ -299,6 +293,16 @@ public Role role() { return role; } + /** + * Returns an Acl object. + * + * @param entity the entity for this ACL object + * @param role the role to associate to the {@code entity} object + */ + public static Acl of(Entity entity, Role role) { + return new Acl(entity, role); + } + @Override public int hashCode() { return Objects.hash(entity, role); @@ -333,11 +337,11 @@ ObjectAccessControl toObjectPb() { static Acl fromPb(ObjectAccessControl objectAccessControl) { Role role = Role.valueOf(objectAccessControl.getRole()); - return new Acl(Entity.fromPb(objectAccessControl.getEntity()), role); + return Acl.of(Entity.fromPb(objectAccessControl.getEntity()), role); } static Acl fromPb(BucketAccessControl bucketAccessControl) { Role role = Role.valueOf(bucketAccessControl.getRole()); - return new Acl(Entity.fromPb(bucketAccessControl.getEntity()), role); + return Acl.of(Entity.fromPb(bucketAccessControl.getEntity()), role); } } diff --git a/gcloud-java-storage/src/test/java/com/google/gcloud/storage/AclTest.java b/gcloud-java-storage/src/test/java/com/google/gcloud/storage/AclTest.java index 6a11fb0b2810..1c62805b2a1b 100644 --- a/gcloud-java-storage/src/test/java/com/google/gcloud/storage/AclTest.java +++ b/gcloud-java-storage/src/test/java/com/google/gcloud/storage/AclTest.java @@ -82,8 +82,8 @@ public void testRawEntity() { @Test - public void testAcl() { - Acl acl = new Acl(User.ofAllUsers(), Role.READER); + public void testOf() { + Acl acl = Acl.of(User.ofAllUsers(), Role.READER); assertEquals(User.ofAllUsers(), acl.entity()); assertEquals(Role.READER, acl.role()); ObjectAccessControl objectPb = acl.toObjectPb(); diff --git a/gcloud-java-storage/src/test/java/com/google/gcloud/storage/BlobInfoTest.java b/gcloud-java-storage/src/test/java/com/google/gcloud/storage/BlobInfoTest.java index 36b027dc7278..a1cc01f4287c 100644 --- a/gcloud-java-storage/src/test/java/com/google/gcloud/storage/BlobInfoTest.java +++ b/gcloud-java-storage/src/test/java/com/google/gcloud/storage/BlobInfoTest.java @@ -34,8 +34,8 @@ public class BlobInfoTest { private static final List ACL = ImmutableList.of( - new Acl(User.ofAllAuthenticatedUsers(), READER), - new Acl(new Project(VIEWERS, "p1"), WRITER)); + Acl.of(User.ofAllAuthenticatedUsers(), READER), + Acl.of(new Project(VIEWERS, "p1"), WRITER)); private static final Integer COMPONENT_COUNT = 2; private static final String CONTENT_TYPE = "text/html"; private static final String CACHE_CONTROL = "cache"; diff --git a/gcloud-java-storage/src/test/java/com/google/gcloud/storage/BucketInfoTest.java b/gcloud-java-storage/src/test/java/com/google/gcloud/storage/BucketInfoTest.java index b705685a04b1..bd6bcdbbcff2 100644 --- a/gcloud-java-storage/src/test/java/com/google/gcloud/storage/BucketInfoTest.java +++ b/gcloud-java-storage/src/test/java/com/google/gcloud/storage/BucketInfoTest.java @@ -41,8 +41,8 @@ public class BucketInfoTest { private static final List ACL = ImmutableList.of( - new Acl(User.ofAllAuthenticatedUsers(), Role.READER), - new Acl(new Project(VIEWERS, "p1"), Role.WRITER)); + Acl.of(User.ofAllAuthenticatedUsers(), Role.READER), + Acl.of(new Project(VIEWERS, "p1"), Role.WRITER)); private static final String ETAG = "0xFF00"; private static final String ID = "B/N:1"; private static final Long META_GENERATION = 10L; @@ -51,7 +51,7 @@ public class BucketInfoTest { private static final Long CREATE_TIME = System.currentTimeMillis(); private static final List CORS = Collections.singletonList(Cors.builder().build()); private static final List DEFAULT_ACL = - Collections.singletonList(new Acl(User.ofAllAuthenticatedUsers(), Role.WRITER)); + Collections.singletonList(Acl.of(User.ofAllAuthenticatedUsers(), Role.WRITER)); private static final List DELETE_RULES = Collections.singletonList(new AgeDeleteRule(5)); private static final String INDEX_PAGE = "index.html"; diff --git a/gcloud-java-storage/src/test/java/com/google/gcloud/storage/SerializationTest.java b/gcloud-java-storage/src/test/java/com/google/gcloud/storage/SerializationTest.java index 8506e8b48f6b..8bef27cb0cd0 100644 --- a/gcloud-java-storage/src/test/java/com/google/gcloud/storage/SerializationTest.java +++ b/gcloud-java-storage/src/test/java/com/google/gcloud/storage/SerializationTest.java @@ -47,6 +47,7 @@ public class SerializationTest { private static final Acl.Project ACL_PROJECT_ = new Acl.Project(ProjectRole.VIEWERS, "pid"); private static final Acl.User ACL_USER = new Acl.User("user"); private static final Acl.RawEntity ACL_RAW = new Acl.RawEntity("raw"); + private static final Acl ACL = Acl.of(ACL_DOMAIN, Acl.Role.OWNER); private static final BlobInfo BLOB_INFO = BlobInfo.builder("b", "n").build(); private static final BucketInfo BUCKET_INFO = BucketInfo.of("b"); private static final Cors.Origin ORIGIN = Cors.Origin.any(); @@ -94,11 +95,10 @@ public void testServiceOptions() throws Exception { @Test public void testModelAndRequests() throws Exception { - Serializable[] objects = {ACL_DOMAIN, ACL_GROUP, ACL_PROJECT_, ACL_USER, ACL_RAW, BLOB_INFO, - BUCKET_INFO, - ORIGIN, CORS, BATCH_REQUEST, BATCH_RESPONSE, PAGE_RESULT, BLOB_LIST_OPTIONS, - BLOB_SOURCE_OPTIONS, BLOB_TARGET_OPTIONS, BUCKET_LIST_OPTIONS, BUCKET_SOURCE_OPTIONS, - BUCKET_TARGET_OPTIONS}; + Serializable[] objects = {ACL_DOMAIN, ACL_GROUP, ACL_PROJECT_, ACL_USER, ACL_RAW, ACL, + BLOB_INFO, BUCKET_INFO, ORIGIN, CORS, BATCH_REQUEST, BATCH_RESPONSE, PAGE_RESULT, + BLOB_LIST_OPTIONS, BLOB_SOURCE_OPTIONS, BLOB_TARGET_OPTIONS, BUCKET_LIST_OPTIONS, + BUCKET_SOURCE_OPTIONS, BUCKET_TARGET_OPTIONS}; for (Serializable obj : objects) { Object copy = serializeAndDeserialize(obj); assertEquals(obj, obj); From c411b23813dc56e0d2a11271655cf6fb7717ca7c Mon Sep 17 00:00:00 2001 From: Marco Ziccardi Date: Fri, 22 Jan 2016 10:35:01 +0100 Subject: [PATCH 2/2] Add Acl.of method to bigquery module --- .../java/com/google/gcloud/bigquery/Acl.java | 32 +++++++++++-------- .../google/gcloud/bigquery/BigQueryImpl.java | 2 +- .../com/google/gcloud/bigquery/AclTest.java | 6 ++-- .../gcloud/bigquery/BigQueryImplTest.java | 8 ++--- .../gcloud/bigquery/DatasetInfoTest.java | 4 +-- .../gcloud/bigquery/SerializationTest.java | 8 ++--- 6 files changed, 33 insertions(+), 27 deletions(-) diff --git a/gcloud-java-bigquery/src/main/java/com/google/gcloud/bigquery/Acl.java b/gcloud-java-bigquery/src/main/java/com/google/gcloud/bigquery/Acl.java index c1fca9e3b350..b8e9926ce8c8 100644 --- a/gcloud-java-bigquery/src/main/java/com/google/gcloud/bigquery/Acl.java +++ b/gcloud-java-bigquery/src/main/java/com/google/gcloud/bigquery/Acl.java @@ -370,22 +370,11 @@ Access toPb() { } } - /** - * Build an ACL for an {@code entity} and a {@code role}. - */ - public Acl(Entity entity, Role role) { + private Acl(Entity entity, Role role) { this.entity = checkNotNull(entity); this.role = role; } - /** - * Build an ACL for a view entity. - */ - public Acl(View view) { - this.entity = checkNotNull(view); - this.role = null; - } - /** * Returns the entity for this ACL. */ @@ -400,6 +389,23 @@ public Role role() { return role; } + /** + * Returns an Acl object. + * + * @param entity the entity for this ACL object + * @param role the role to associate to the {@code entity} object + */ + public static Acl of(Entity entity, Role role) { + return new Acl(entity, role); + } + + /** + * Returns an Acl object for a view entity. + */ + public static Acl of(View view) { + return new Acl(view, null); + } + @Override public int hashCode() { return Objects.hash(entity, role); @@ -432,7 +438,7 @@ Access toPb() { } static Acl fromPb(Access access) { - return new Acl(Entity.fromPb(access), + return Acl.of(Entity.fromPb(access), access.getRole() != null ? Role.valueOf(access.getRole()) : null); } } diff --git a/gcloud-java-bigquery/src/main/java/com/google/gcloud/bigquery/BigQueryImpl.java b/gcloud-java-bigquery/src/main/java/com/google/gcloud/bigquery/BigQueryImpl.java index 18368b6fa4f7..dde918d1f516 100644 --- a/gcloud-java-bigquery/src/main/java/com/google/gcloud/bigquery/BigQueryImpl.java +++ b/gcloud-java-bigquery/src/main/java/com/google/gcloud/bigquery/BigQueryImpl.java @@ -621,7 +621,7 @@ private DatasetInfo setProjectId(DatasetInfo dataset) { if (viewReferencePb.getProjectId() == null) { viewReferencePb.setProjectId(options().projectId()); } - acls.add(new Acl(new Acl.View(TableId.fromPb(viewReferencePb)))); + acls.add(Acl.of(new Acl.View(TableId.fromPb(viewReferencePb)))); } else { acls.add(acl); } diff --git a/gcloud-java-bigquery/src/test/java/com/google/gcloud/bigquery/AclTest.java b/gcloud-java-bigquery/src/test/java/com/google/gcloud/bigquery/AclTest.java index 52159b0665ac..438526b95b6e 100644 --- a/gcloud-java-bigquery/src/test/java/com/google/gcloud/bigquery/AclTest.java +++ b/gcloud-java-bigquery/src/test/java/com/google/gcloud/bigquery/AclTest.java @@ -81,14 +81,14 @@ public void testViewEntity() { } @Test - public void testAcl() { - Acl acl = new Acl(Group.ofAllAuthenticatedUsers(), Role.READER); + public void testOf() { + Acl acl = Acl.of(Group.ofAllAuthenticatedUsers(), Role.READER); assertEquals(Group.ofAllAuthenticatedUsers(), acl.entity()); assertEquals(Role.READER, acl.role()); Dataset.Access pb = acl.toPb(); assertEquals(acl, Acl.fromPb(pb)); View view = new View(TableId.of("project", "dataset", "view")); - acl = new Acl(view); + acl = Acl.of(view); assertEquals(view, acl.entity()); assertEquals(null, acl.role()); } diff --git a/gcloud-java-bigquery/src/test/java/com/google/gcloud/bigquery/BigQueryImplTest.java b/gcloud-java-bigquery/src/test/java/com/google/gcloud/bigquery/BigQueryImplTest.java index 021c356320da..3fe1824fd3c2 100644 --- a/gcloud-java-bigquery/src/test/java/com/google/gcloud/bigquery/BigQueryImplTest.java +++ b/gcloud-java-bigquery/src/test/java/com/google/gcloud/bigquery/BigQueryImplTest.java @@ -68,11 +68,11 @@ public class BigQueryImplTest { private static final String OTHER_TABLE = "otherTable"; private static final String OTHER_DATASET = "otherDataset"; private static final List ACCESS_RULES = ImmutableList.of( - new Acl(Acl.Group.ofAllAuthenticatedUsers(), Acl.Role.READER), - new Acl(new Acl.View(TableId.of("dataset", "table")), Acl.Role.WRITER)); + Acl.of(Acl.Group.ofAllAuthenticatedUsers(), Acl.Role.READER), + Acl.of(new Acl.View(TableId.of("dataset", "table")), Acl.Role.WRITER)); private static final List ACCESS_RULES_WITH_PROJECT = ImmutableList.of( - new Acl(Acl.Group.ofAllAuthenticatedUsers(), Acl.Role.READER), - new Acl(new Acl.View(TableId.of(PROJECT, "dataset", "table")))); + Acl.of(Acl.Group.ofAllAuthenticatedUsers(), Acl.Role.READER), + Acl.of(new Acl.View(TableId.of(PROJECT, "dataset", "table")))); private static final DatasetInfo DATASET_INFO = DatasetInfo.builder(DATASET) .acl(ACCESS_RULES) .description("description") diff --git a/gcloud-java-bigquery/src/test/java/com/google/gcloud/bigquery/DatasetInfoTest.java b/gcloud-java-bigquery/src/test/java/com/google/gcloud/bigquery/DatasetInfoTest.java index 43c80f6afe83..733253a2d790 100644 --- a/gcloud-java-bigquery/src/test/java/com/google/gcloud/bigquery/DatasetInfoTest.java +++ b/gcloud-java-bigquery/src/test/java/com/google/gcloud/bigquery/DatasetInfoTest.java @@ -28,8 +28,8 @@ public class DatasetInfoTest { private static final List ACCESS_RULES = ImmutableList.of( - new Acl(Acl.Group.ofAllAuthenticatedUsers(), Acl.Role.READER), - new Acl(new Acl.View(TableId.of("project", "dataset", "table")), Acl.Role.WRITER)); + Acl.of(Acl.Group.ofAllAuthenticatedUsers(), Acl.Role.READER), + Acl.of(new Acl.View(TableId.of("project", "dataset", "table")), Acl.Role.WRITER)); private static final Long CREATION_TIME = System.currentTimeMillis(); private static final Long DEFAULT_TABLE_EXPIRATION = CREATION_TIME + 100; private static final String DESCRIPTION = "description"; diff --git a/gcloud-java-bigquery/src/test/java/com/google/gcloud/bigquery/SerializationTest.java b/gcloud-java-bigquery/src/test/java/com/google/gcloud/bigquery/SerializationTest.java index 6068f2332866..1a20682aa447 100644 --- a/gcloud-java-bigquery/src/test/java/com/google/gcloud/bigquery/SerializationTest.java +++ b/gcloud-java-bigquery/src/test/java/com/google/gcloud/bigquery/SerializationTest.java @@ -42,12 +42,12 @@ public class SerializationTest { private static final Acl DOMAIN_ACCESS = - new Acl(new Acl.Domain("domain"), Acl.Role.WRITER); + Acl.of(new Acl.Domain("domain"), Acl.Role.WRITER); private static final Acl GROUP_ACCESS = - new Acl(Acl.Group.ofAllAuthenticatedUsers(), Acl.Role.READER); - private static final Acl USER_ACCESS = new Acl(new Acl.User("user"), Acl.Role.OWNER); + Acl.of(Acl.Group.ofAllAuthenticatedUsers(), Acl.Role.READER); + private static final Acl USER_ACCESS = Acl.of(new Acl.User("user"), Acl.Role.OWNER); private static final Acl VIEW_ACCESS = - new Acl(new Acl.View(TableId.of("project", "dataset", "table")), Acl.Role.WRITER); + Acl.of(new Acl.View(TableId.of("project", "dataset", "table")), Acl.Role.WRITER); private static final List ACCESS_RULES = ImmutableList.of(DOMAIN_ACCESS, GROUP_ACCESS, VIEW_ACCESS, USER_ACCESS); private static final Long CREATION_TIME = System.currentTimeMillis() - 10;