@@ -28,8 +28,7 @@ public TypeParser withFactory(TypeFactory f) {
28
28
29
29
public JavaType parse (String canonical ) throws IllegalArgumentException
30
30
{
31
- canonical = canonical .trim ();
32
- MyTokenizer tokens = new MyTokenizer (canonical );
31
+ MyTokenizer tokens = new MyTokenizer (canonical .trim ());
33
32
JavaType type = parseType (tokens );
34
33
// must be end, now
35
34
if (tokens .hasMoreTokens ()) {
@@ -90,19 +89,18 @@ protected Class<?> findClass(String className, MyTokenizer tokens)
90
89
91
90
protected IllegalArgumentException _problem (MyTokenizer tokens , String msg )
92
91
{
93
- return new IllegalArgumentException ("Failed to parse type '" + tokens . getAllInput ()
94
- + "' (remaining: '" + tokens .getRemainingInput ()+ "'): " + msg );
92
+ return new IllegalArgumentException (String . format ( "Failed to parse type '%s' (remaining: '%s'): %s" ,
93
+ tokens . getAllInput (), tokens .getRemainingInput (), msg ) );
95
94
}
96
95
97
- final static class MyTokenizer
98
- extends StringTokenizer
96
+ final static class MyTokenizer extends StringTokenizer
99
97
{
100
98
protected final String _input ;
101
99
102
100
protected int _index ;
103
101
104
102
protected String _pushbackToken ;
105
-
103
+
106
104
public MyTokenizer (String str ) {
107
105
super (str , "<,>" , true );
108
106
_input = str ;
@@ -121,18 +119,19 @@ public String nextToken() {
121
119
_pushbackToken = null ;
122
120
} else {
123
121
token = super .nextToken ();
122
+ _index += token .length ();
123
+ token = token .trim ();
124
124
}
125
- _index += token .length ();
126
125
return token ;
127
126
}
128
127
129
128
public void pushBack (String token ) {
130
129
_pushbackToken = token ;
131
- _index -= token . length ();
130
+ // let's NOT change index for now, since token may have been trim()ed
132
131
}
133
-
132
+
134
133
public String getAllInput () { return _input ; }
135
- public String getUsedInput () { return _input .substring (0 , _index ); }
134
+ // public String getUsedInput() { return _input.substring(0, _index); }
136
135
public String getRemainingInput () { return _input .substring (_index ); }
137
136
}
138
137
}
0 commit comments