01: /*
02: * Copyright 2006 Google Inc.
03: *
04: * Licensed under the Apache License, Version 2.0 (the "License"); you may not
05: * use this file except in compliance with the License. You may obtain a copy of
06: * the License at
07: *
08: * http://www.apache.org/licenses/LICENSE-2.0
09: *
10: * Unless required by applicable law or agreed to in writing, software
11: * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12: * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13: * License for the specific language governing permissions and limitations under
14: * the License.
15: */
16: package com.google.gwt.util.tools;
17:
18: /**
19: * Argument handler for flags that take an integer as their parameter.
20: */
21: public abstract class ArgHandlerInt extends ArgHandler {
22:
23: public String[] getDefaultArgs() {
24: return null;
25: }
26:
27: public abstract String getPurpose();
28:
29: public abstract String getTag();
30:
31: public abstract String[] getTagArgs();
32:
33: public int handle(String[] args, int startIndex) {
34: int value;
35: if (startIndex + 1 < args.length) {
36: try {
37: value = Integer.parseInt(args[startIndex + 1]);
38: } catch (NumberFormatException e) {
39: // fall-through
40: value = -1;
41: }
42:
43: setInt(value);
44: return 1;
45: }
46:
47: System.err.println(getTag()
48: + " should be followed by an integer");
49: return -1;
50: }
51:
52: public boolean isRequired() {
53: return false;
54: }
55:
56: public abstract void setInt(int value);
57: }
|