Skip to content

Commit 682d765

Browse files
committed
Clarify usage examples.
Also, switch runArray from taking a list to taking an array.
1 parent 63d443b commit 682d765

File tree

1 file changed

+28
-17
lines changed

1 file changed

+28
-17
lines changed

bigquery/cloud-client/src/main/java/com/example/bigquery/QueryParametersSample.java

Lines changed: 28 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import org.joda.time.format.ISODateTimeFormat;
3030

3131
import java.io.IOException;
32-
import java.util.ArrayList;
32+
import java.util.Arrays;
3333
import java.util.Iterator;
3434
import java.util.List;
3535
import java.util.stream.Collectors;
@@ -43,16 +43,32 @@ public class QueryParametersSample {
4343
private static void printUsage() {
4444
System.err.println("Usage:");
4545
System.err.printf(
46-
"mvn exec:java -Dexec.mainClass=%s -Dexec.args=%s\n",
46+
"\tmvn exec:java -Dexec.mainClass=%s -Dexec.args='%s'\n",
4747
QueryParametersSample.class.getCanonicalName(),
48-
"sample");
49-
System.err.println("sample values: named|array|struct|timestamp");
50-
System.err.println("Usage for sample=named:");
51-
System.err.println("\tnamed corpus minWordCount");
48+
"${sample}");
49+
System.err.println();
50+
System.err.println("${sample} can be one of: named, array, timestamp");
51+
System.err.println();
52+
System.err.println("Usage for ${sample}=named:");
53+
System.err.printf(
54+
"\tmvn exec:java -Dexec.mainClass=%s -Dexec.args='%s'\n",
55+
QueryParametersSample.class.getCanonicalName(),
56+
"named ${corpus} ${minWordCount}");
57+
System.err.println();
5258
System.err.println("Usage for sample=array:");
53-
System.err.println("\tarray gender states...");
54-
System.err.println("\tgender=M|F");
55-
System.err.println("\tstates=Upper-case 2-letter code for U.S. state, e.g. CA.");
59+
System.err.printf(
60+
"\tmvn exec:java -Dexec.mainClass=%s -Dexec.args='%s'\n",
61+
QueryParametersSample.class.getCanonicalName(),
62+
"array ${gender} ${states...}");
63+
System.err.println();
64+
System.err.println("\twhere ${gender} can be on of: M, F");
65+
System.err.println(
66+
"\tand ${states} is any upper-case 2-letter code for U.S. a state, e.g. CA.");
67+
System.err.println();
68+
System.err.printf(
69+
"\t\tmvn exec:java -Dexec.mainClass=%s -Dexec.args='%s'\n",
70+
QueryParametersSample.class.getCanonicalName(),
71+
"array F MD WA");
5672
}
5773

5874
/**
@@ -82,10 +98,7 @@ public static void main(final String[] args) throws IOException, InterruptedExce
8298
System.exit(ERROR_CODE);
8399
}
84100
String gender = args[1];
85-
ArrayList<String> states = new ArrayList<>();
86-
for (int i = 2; i < args.length; i++) {
87-
states.add(args[i]);
88-
}
101+
String[] states = Arrays.copyOfRange(args, 2, args.length);
89102
runArray(gender, states);
90103
break;
91104
case "timestamp":
@@ -162,7 +175,7 @@ private static void runNamed(final String corpus, final long minWordCount)
162175
* Query the baby names database to find the most popular names for a gender in a list of states.
163176
*/
164177
// [START bigquery_query_params_arrays]
165-
private static void runArray(String gender, List<String> states)
178+
private static void runArray(String gender, String[] states)
166179
throws InterruptedException {
167180
BigQuery bigquery =
168181
new BigQueryOptions.DefaultBigqueryFactory().create(BigQueryOptions.getDefaultInstance());
@@ -179,9 +192,7 @@ private static void runArray(String gender, List<String> states)
179192
.addNamedParameter("gender", QueryParameterValue.string(gender))
180193
.addNamedParameter(
181194
"states",
182-
QueryParameterValue.array(
183-
states.toArray(new String[]{}),
184-
String.class))
195+
QueryParameterValue.array(states, String.class))
185196
// Standard SQL syntax is required for parameterized queries.
186197
// See: https://cloud.google.com/bigquery/sql-reference/
187198
.setUseLegacySql(false)

0 commit comments

Comments
 (0)