Skip to content

Commit 8db4b9b

Browse files
committed
Minor refactoring for SelectorHelper
- Rename selector method for lists to listSelector - Update selectors to accept List<? extends FieldSelector> parameters - Add missing unit test for listSelector - Remove redundant extends Serializable from dns' option classes
1 parent 1710a4c commit 8db4b9b

File tree

6 files changed

+65
-54
lines changed

6 files changed

+65
-54
lines changed

gcloud-java-bigquery/src/main/java/com/google/gcloud/bigquery/BigQuery.java

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import com.google.common.collect.ImmutableList;
2323
import com.google.common.collect.Lists;
2424
import com.google.gcloud.FieldSelector;
25-
import com.google.gcloud.FieldSelector.SelectorHelper;
25+
import com.google.gcloud.FieldSelector.Helper;
2626
import com.google.gcloud.Page;
2727
import com.google.gcloud.Service;
2828
import com.google.gcloud.bigquery.spi.BigQueryRpc;
@@ -55,8 +55,8 @@ enum DatasetField implements FieldSelector {
5555
LOCATION("location"),
5656
SELF_LINK("selfLink");
5757

58-
static final List<FieldSelector> REQUIRED_FIELDS =
59-
ImmutableList.<FieldSelector>of(DATASET_REFERENCE);
58+
static final List<? extends FieldSelector> REQUIRED_FIELDS =
59+
ImmutableList.of(DATASET_REFERENCE);
6060

6161
private final String selector;
6262

@@ -95,8 +95,8 @@ enum TableField implements FieldSelector {
9595
TYPE("type"),
9696
VIEW("view");
9797

98-
static final List<FieldSelector> REQUIRED_FIELDS =
99-
ImmutableList.<FieldSelector>of(TABLE_REFERENCE, TYPE);
98+
static final List<? extends FieldSelector> REQUIRED_FIELDS =
99+
ImmutableList.of(TABLE_REFERENCE, TYPE);
100100

101101
private final String selector;
102102

@@ -126,8 +126,8 @@ enum JobField implements FieldSelector {
126126
STATUS("status"),
127127
USER_EMAIL("user_email");
128128

129-
static final List<FieldSelector> REQUIRED_FIELDS =
130-
ImmutableList.<FieldSelector>of(JOB_REFERENCE, CONFIGURATION);
129+
static final List<? extends FieldSelector> REQUIRED_FIELDS =
130+
ImmutableList.of(JOB_REFERENCE, CONFIGURATION);
131131

132132
private final String selector;
133133

@@ -193,7 +193,7 @@ private DatasetOption(BigQueryRpc.Option option, Object value) {
193193
*/
194194
public static DatasetOption fields(DatasetField... fields) {
195195
return new DatasetOption(BigQueryRpc.Option.FIELDS,
196-
SelectorHelper.selector(DatasetField.REQUIRED_FIELDS, fields));
196+
Helper.selector(DatasetField.REQUIRED_FIELDS, fields));
197197
}
198198
}
199199

@@ -263,7 +263,7 @@ private TableOption(BigQueryRpc.Option option, Object value) {
263263
*/
264264
public static TableOption fields(TableField... fields) {
265265
return new TableOption(BigQueryRpc.Option.FIELDS,
266-
SelectorHelper.selector(TableField.REQUIRED_FIELDS, fields));
266+
Helper.selector(TableField.REQUIRED_FIELDS, fields));
267267
}
268268
}
269269

@@ -361,8 +361,7 @@ public static JobListOption pageToken(String pageToken) {
361361
*/
362362
public static JobListOption fields(JobField... fields) {
363363
return new JobListOption(BigQueryRpc.Option.FIELDS,
364-
SelectorHelper.selector("jobs", JobField.REQUIRED_FIELDS, fields, "state",
365-
"errorResult"));
364+
Helper.listSelector("jobs", JobField.REQUIRED_FIELDS, fields, "state", "errorResult"));
366365
}
367366
}
368367

@@ -386,7 +385,7 @@ private JobOption(BigQueryRpc.Option option, Object value) {
386385
*/
387386
public static JobOption fields(JobField... fields) {
388387
return new JobOption(BigQueryRpc.Option.FIELDS,
389-
SelectorHelper.selector(JobField.REQUIRED_FIELDS, fields));
388+
Helper.selector(JobField.REQUIRED_FIELDS, fields));
390389
}
391390
}
392391

gcloud-java-core/src/main/java/com/google/gcloud/FieldSelector.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ public interface FieldSelector {
4141
* A helper class used to build composite selectors given a number of fields. This class is not
4242
* supposed to be used directly by users.
4343
*/
44-
class SelectorHelper {
44+
class Helper {
4545

46-
private SelectorHelper() {}
46+
private Helper() {}
4747

4848
private static final Function<FieldSelector, String> FIELD_TO_STRING_FUNCTION =
4949
new Function<FieldSelector, String>() {
@@ -53,7 +53,7 @@ public String apply(FieldSelector fieldSelector) {
5353
}
5454
};
5555

56-
private static String selector(List<FieldSelector> required, FieldSelector[] others,
56+
private static String selector(List<? extends FieldSelector> required, FieldSelector[] others,
5757
String... extraResourceFields) {
5858
Set<String> fieldStrings = Sets.newHashSetWithExpectedSize(required.size() + others.length);
5959
fieldStrings.addAll(Lists.transform(required, FIELD_TO_STRING_FUNCTION));
@@ -67,7 +67,7 @@ private static String selector(List<FieldSelector> required, FieldSelector[] oth
6767
* method can be used for field selection in API calls that return a single resource. This
6868
* method is not supposed to be used directly by users.
6969
*/
70-
public static String selector(List<FieldSelector> required, FieldSelector... others) {
70+
public static String selector(List<? extends FieldSelector> required, FieldSelector... others) {
7171
return selector(required, others, new String[]{});
7272
}
7373

@@ -76,7 +76,7 @@ public static String selector(List<FieldSelector> required, FieldSelector... oth
7676
* selector returned by this method can be used for field selection in API calls that return a
7777
* list of resources. This method is not supposed to be used directly by users.
7878
*/
79-
public static String selector(String containerName, List<FieldSelector> required,
79+
public static String listSelector(String containerName, List<? extends FieldSelector> required,
8080
FieldSelector... others) {
8181
return "nextPageToken," + containerName + '(' + selector(required, others) + ')';
8282
}
@@ -87,7 +87,7 @@ public static String selector(String containerName, List<FieldSelector> required
8787
* string selector returned by this method can be used for field selection in API calls that
8888
* return a list of resources. This method is not supposed to be used directly by users.
8989
*/
90-
public static String selector(String containerName, List<FieldSelector> required,
90+
public static String listSelector(String containerName, List<? extends FieldSelector> required,
9191
FieldSelector[] others, String... extraResourceFields) {
9292
return "nextPageToken," + containerName + '('
9393
+ selector(required, others, extraResourceFields) + ')';

gcloud-java-core/src/test/java/com/google/gcloud/SelectorHelperTest.java renamed to gcloud-java-core/src/test/java/com/google/gcloud/FieldSelectorHelperTest.java

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,13 @@
2020
import static org.junit.Assert.assertTrue;
2121

2222
import com.google.common.collect.ImmutableList;
23-
import com.google.gcloud.FieldSelector.SelectorHelper;
23+
import com.google.gcloud.FieldSelector.Helper;
2424

2525
import org.junit.Test;
2626

2727
import java.util.List;
2828

29-
public class SelectorHelperTest {
29+
public class FieldSelectorHelperTest {
3030

3131
private static final FieldSelector FIELD1 = new FieldSelector() {
3232
@Override
@@ -51,7 +51,7 @@ public String selector() {
5151

5252
@Test
5353
public void testSelector() {
54-
String selector = SelectorHelper.selector(REQUIRED_FIELDS, FIELD3);
54+
String selector = Helper.selector(REQUIRED_FIELDS, FIELD3);
5555
assertTrue(selector.contains("field1"));
5656
assertTrue(selector.contains("field2"));
5757
assertTrue(selector.contains("field3"));
@@ -60,12 +60,25 @@ public void testSelector() {
6060

6161
@Test
6262
public void testListSelector() {
63-
String selector = SelectorHelper.selector(CONTAINER, REQUIRED_FIELDS, FIELD3);
63+
String selector = Helper.listSelector(CONTAINER, REQUIRED_FIELDS, FIELD3);
6464
assertTrue(selector.startsWith("nextPageToken,container("));
6565
assertTrue(selector.contains("field1"));
6666
assertTrue(selector.contains("field2"));
6767
assertTrue(selector.contains("field3"));
6868
assertTrue(selector.endsWith(")"));
6969
assertEquals(45, selector.length());
7070
}
71+
72+
@Test
73+
public void testListSelectorWithExtraFields() {
74+
String selector = Helper.listSelector(CONTAINER, REQUIRED_FIELDS,
75+
new FieldSelector[]{FIELD3}, "field4");
76+
assertTrue(selector.startsWith("nextPageToken,container("));
77+
assertTrue(selector.contains("field1"));
78+
assertTrue(selector.contains("field2"));
79+
assertTrue(selector.contains("field3"));
80+
assertTrue(selector.contains("field4"));
81+
assertTrue(selector.endsWith(")"));
82+
assertEquals(52, selector.length());
83+
}
7184
}

gcloud-java-dns/src/main/java/com/google/gcloud/dns/Dns.java

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
import com.google.common.collect.ImmutableList;
2020
import com.google.gcloud.FieldSelector;
21-
import com.google.gcloud.FieldSelector.SelectorHelper;
21+
import com.google.gcloud.FieldSelector.Helper;
2222
import com.google.gcloud.Page;
2323
import com.google.gcloud.Service;
2424
import com.google.gcloud.dns.spi.DnsRpc;
@@ -45,7 +45,7 @@ enum ProjectField implements FieldSelector {
4545
PROJECT_NUMBER("number"),
4646
QUOTA("quota");
4747

48-
static final List<FieldSelector> REQUIRED_FIELDS = ImmutableList.<FieldSelector>of(PROJECT_ID);
48+
static final List<? extends FieldSelector> REQUIRED_FIELDS = ImmutableList.of(PROJECT_ID);
4949

5050
private final String selector;
5151

@@ -75,7 +75,7 @@ enum ZoneField implements FieldSelector {
7575
NAME_SERVER_SET("nameServerSet"),
7676
NAME_SERVERS("nameServers");
7777

78-
static final List<FieldSelector> REQUIRED_FIELDS = ImmutableList.<FieldSelector>of(NAME);
78+
static final List<? extends FieldSelector> REQUIRED_FIELDS = ImmutableList.of(NAME);
7979

8080
private final String selector;
8181

@@ -102,7 +102,7 @@ enum RecordSetField implements FieldSelector {
102102
TTL("ttl"),
103103
TYPE("type");
104104

105-
static final List<FieldSelector> REQUIRED_FIELDS = ImmutableList.<FieldSelector>of(NAME, TYPE);
105+
static final List<? extends FieldSelector> REQUIRED_FIELDS = ImmutableList.of(NAME, TYPE);
106106

107107
private final String selector;
108108

@@ -120,8 +120,8 @@ public String selector() {
120120
* The fields of a change request.
121121
*
122122
* <p>These values can be used to specify the fields to include in a partial response when calling
123-
* {@link Dns#applyChangeRequest(String, ChangeRequestInfo, ChangeRequestOption...)} The ID is always
124-
* returned even if not selected.
123+
* {@link Dns#applyChangeRequest(String, ChangeRequestInfo, ChangeRequestOption...)} The ID is
124+
* always returned even if not selected.
125125
*/
126126
enum ChangeRequestField implements FieldSelector {
127127
ID("id"),
@@ -130,7 +130,7 @@ enum ChangeRequestField implements FieldSelector {
130130
ADDITIONS("additions"),
131131
DELETIONS("deletions");
132132

133-
static final List<FieldSelector> REQUIRED_FIELDS = ImmutableList.<FieldSelector>of(ID);
133+
static final List<? extends FieldSelector> REQUIRED_FIELDS = ImmutableList.of(ID);
134134

135135
private final String selector;
136136

@@ -158,7 +158,7 @@ public String selector() {
158158
/**
159159
* Class for specifying record set listing options.
160160
*/
161-
class RecordSetListOption extends Option implements Serializable {
161+
class RecordSetListOption extends Option {
162162

163163
private static final long serialVersionUID = 1009627025381096098L;
164164

@@ -176,7 +176,7 @@ class RecordSetListOption extends Option implements Serializable {
176176
*/
177177
public static RecordSetListOption fields(RecordSetField... fields) {
178178
return new RecordSetListOption(DnsRpc.Option.FIELDS,
179-
SelectorHelper.selector("rrsets", RecordSetField.REQUIRED_FIELDS, fields));
179+
Helper.listSelector("rrsets", RecordSetField.REQUIRED_FIELDS, fields));
180180
}
181181

182182
/**
@@ -218,7 +218,7 @@ public static RecordSetListOption type(RecordSet.Type type) {
218218
/**
219219
* Class for specifying zone field options.
220220
*/
221-
class ZoneOption extends Option implements Serializable {
221+
class ZoneOption extends Option {
222222

223223
private static final long serialVersionUID = -8065564464895945037L;
224224

@@ -235,14 +235,14 @@ class ZoneOption extends Option implements Serializable {
235235
*/
236236
public static ZoneOption fields(ZoneField... fields) {
237237
return new ZoneOption(DnsRpc.Option.FIELDS,
238-
SelectorHelper.selector(ZoneField.REQUIRED_FIELDS, fields));
238+
Helper.selector(ZoneField.REQUIRED_FIELDS, fields));
239239
}
240240
}
241241

242242
/**
243243
* Class for specifying zone listing options.
244244
*/
245-
class ZoneListOption extends Option implements Serializable {
245+
class ZoneListOption extends Option {
246246

247247
private static final long serialVersionUID = -2830645032124504717L;
248248

@@ -259,7 +259,7 @@ class ZoneListOption extends Option implements Serializable {
259259
*/
260260
public static ZoneListOption fields(ZoneField... fields) {
261261
return new ZoneListOption(DnsRpc.Option.FIELDS,
262-
SelectorHelper.selector("managedZones", ZoneField.REQUIRED_FIELDS, fields));
262+
Helper.listSelector("managedZones", ZoneField.REQUIRED_FIELDS, fields));
263263
}
264264

265265
/**
@@ -293,7 +293,7 @@ public static ZoneListOption pageSize(int pageSize) {
293293
/**
294294
* Class for specifying project options.
295295
*/
296-
class ProjectOption extends Option implements Serializable {
296+
class ProjectOption extends Option {
297297

298298
private static final long serialVersionUID = 6817937338218847748L;
299299

@@ -311,14 +311,14 @@ class ProjectOption extends Option implements Serializable {
311311
*/
312312
public static ProjectOption fields(ProjectField... fields) {
313313
return new ProjectOption(DnsRpc.Option.FIELDS,
314-
SelectorHelper.selector(ProjectField.REQUIRED_FIELDS, fields));
314+
Helper.selector(ProjectField.REQUIRED_FIELDS, fields));
315315
}
316316
}
317317

318318
/**
319319
* Class for specifying change request field options.
320320
*/
321-
class ChangeRequestOption extends Option implements Serializable {
321+
class ChangeRequestOption extends Option {
322322

323323
private static final long serialVersionUID = 1067273695061077782L;
324324

@@ -337,14 +337,14 @@ class ChangeRequestOption extends Option implements Serializable {
337337
*/
338338
public static ChangeRequestOption fields(ChangeRequestField... fields) {
339339
return new ChangeRequestOption(DnsRpc.Option.FIELDS,
340-
SelectorHelper.selector(ChangeRequestField.REQUIRED_FIELDS, fields));
340+
Helper.selector(ChangeRequestField.REQUIRED_FIELDS, fields));
341341
}
342342
}
343343

344344
/**
345345
* Class for specifying change request listing options.
346346
*/
347-
class ChangeRequestListOption extends Option implements Serializable {
347+
class ChangeRequestListOption extends Option {
348348

349349
private static final long serialVersionUID = -900209143895376089L;
350350

@@ -363,7 +363,7 @@ class ChangeRequestListOption extends Option implements Serializable {
363363
*/
364364
public static ChangeRequestListOption fields(ChangeRequestField... fields) {
365365
return new ChangeRequestListOption(DnsRpc.Option.FIELDS,
366-
SelectorHelper.selector("changes", ChangeRequestField.REQUIRED_FIELDS, fields));
366+
Helper.listSelector("changes", ChangeRequestField.REQUIRED_FIELDS, fields));
367367
}
368368

369369
/**

gcloud-java-resourcemanager/src/main/java/com/google/gcloud/resourcemanager/ResourceManager.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
import com.google.common.collect.ImmutableList;
2020
import com.google.gcloud.FieldSelector;
21-
import com.google.gcloud.FieldSelector.SelectorHelper;
21+
import com.google.gcloud.FieldSelector.Helper;
2222
import com.google.gcloud.IamPolicy;
2323
import com.google.gcloud.Page;
2424
import com.google.gcloud.Service;
@@ -50,7 +50,7 @@ enum ProjectField implements FieldSelector {
5050
STATE("lifecycleState"),
5151
CREATE_TIME("createTime");
5252

53-
static final List<FieldSelector> REQUIRED_FIELDS = ImmutableList.<FieldSelector>of(PROJECT_ID);
53+
static final List<? extends FieldSelector> REQUIRED_FIELDS = ImmutableList.of(PROJECT_ID);
5454

5555
private final String selector;
5656

@@ -85,7 +85,7 @@ private ProjectGetOption(ResourceManagerRpc.Option option, Object value) {
8585
*/
8686
public static ProjectGetOption fields(ProjectField... fields) {
8787
return new ProjectGetOption(ResourceManagerRpc.Option.FIELDS,
88-
SelectorHelper.selector(ProjectField.REQUIRED_FIELDS, fields));
88+
Helper.selector(ProjectField.REQUIRED_FIELDS, fields));
8989
}
9090
}
9191

@@ -159,7 +159,7 @@ public static ProjectListOption pageSize(int pageSize) {
159159
*/
160160
public static ProjectListOption fields(ProjectField... fields) {
161161
return new ProjectListOption(ResourceManagerRpc.Option.FIELDS,
162-
SelectorHelper.selector("projects", ProjectField.REQUIRED_FIELDS, fields));
162+
Helper.listSelector("projects", ProjectField.REQUIRED_FIELDS, fields));
163163
}
164164
}
165165

0 commit comments

Comments
 (0)