Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Side by Side Diff: third_party/robolectric/template_processor/src/org/chromium/testing/robolectric/template/ProcessTemplateArgParser.java

Issue 2710343003: Update Robolectric to 3.2.2 (Closed)
Patch Set: Small fix to StripLayoutHelperTest Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 package org.chromium.testing.robolectric.template;
6
7 import java.nio.file.Path;
8 import java.nio.file.Paths;
9 import java.util.LinkedList;
10 import java.util.List;
11
12 /**
13 * Parses command line arguments for ProcessRobolectricTemplate.
14 */
15 public class ProcessTemplateArgParser {
16
17 private List<TemplateFileInfo> mTemplateFileInfoList;
18 private Path mBaseTemplateDir;
19 private Path mOutputDir;
20 private Integer mApiLevel;
21
22 public static ProcessTemplateArgParser parse(String[] args) {
23
24 ProcessTemplateArgParser parsed = new ProcessTemplateArgParser();
25
26 for (int i = 0; i < args.length; ++i) {
27 if (args[i].startsWith("-")) {
28 String argName;
29 if (args[i].startsWith("-", 1)) {
30 argName = args[i].substring(2, args[i].length());
31 } else {
32 argName = args[i].substring(1, args[i].length());
33 }
34 try {
35 if ("process-file".equals(argName)) {
36 // Read the two command line arguments after the flag.
37 // Format is --process-file <template file> <output file >.
38 // Argument can be passed multiple times.
39 Path templatePath = Paths.get(args[++i]);
40 Path outputPath = Paths.get(args[++i]);
41 parsed.addTemplateFileInfo(
42 new TemplateFileInfo(templatePath, outputPath));
43 } else if ("api-level".equals(argName)) {
44 // Read the command line argument after the flag.
45 parsed.setApiLevel(args[++i]);
46 } else if ("base-template-dir".equals(argName)) {
47 // Read the command line argument after the flag.
48 parsed.setBaseTemplateDir(args[++i]);
49 } else {
50 System.out.println("Ignoring flag: \"" + argName + "\"") ;
51 }
52 } catch (ArrayIndexOutOfBoundsException e) {
53 System.err.println("No value specified for argument \"" + ar gName + "\"");
54 System.exit(1);
55 }
56 } else {
57 System.out.println("Ignoring argument: \"" + args[i] + "\"");
58 }
59 }
60
61 if (parsed.getBaseTemplateDir() == null) {
62 System.err.println("--base-template-dir argument required.");
63 System.exit(1);
64 }
65
66 if (parsed.getApiLevel() == null) {
67 System.err.println("--api-level argument required.");
68 System.exit(1);
69 }
70 return parsed;
71 }
72
73 private ProcessTemplateArgParser() {
74 mApiLevel = null;
75 mBaseTemplateDir = null;
76 mOutputDir = null;
77 mTemplateFileInfoList = new LinkedList<TemplateFileInfo>();
78 }
79
80 public Integer getApiLevel() {
81 return mApiLevel;
82 }
83
84 public Path getBaseTemplateDir() {
85 return mBaseTemplateDir;
86 }
87
88 public List<TemplateFileInfo> getTemplateFileInfoList() {
89 return mTemplateFileInfoList;
90 }
91
92 private void setApiLevel(String integer) {
93 mApiLevel = Integer.parseInt(integer);
94 }
95
96 private void setBaseTemplateDir(String path) {
97 mBaseTemplateDir = Paths.get(path);
98 }
99
100 private void addTemplateFileInfo(TemplateFileInfo templateFileInfo) {
101 mTemplateFileInfoList.add(templateFileInfo);
102 }
103 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698