196 |
else if (source[endx]==',' || source[endx]==')') { |
else if (source[endx]==',' || source[endx]==')') { |
197 |
param=param.trim(); |
param=param.trim(); |
198 |
if (param.length()>0) { |
if (param.length()>0) { |
199 |
int n; |
int n = param.length()-1; |
200 |
for (n=param.length()-1; n>=0; --n) |
int paramNameStart = 0; |
201 |
if (Parser.WHITESPACE.indexOf(param.charAt(n))>=0) |
while (n >= 0) { |
202 |
|
char c = param.charAt(n); |
203 |
|
if ('[' == c || ']' == c || Parser.WHITESPACE.indexOf(c)>=0) { |
204 |
|
paramNameStart = n + 1; |
205 |
break; |
break; |
206 |
String paramType=param.trim(); |
} |
207 |
String paramName=""; |
else { |
208 |
if (n>0) { |
-- n; |
209 |
paramType=param.substring(0,n).trim(); |
} |
210 |
paramName=param.substring(n).trim(); |
} |
211 |
|
while (n >= 0 && ('[' == param.charAt(n) |
212 |
|
|| ']' == param.charAt(n) |
213 |
|
|| Parser.WHITESPACE.indexOf(param.charAt(n))>=0)) { |
214 |
|
-- n; |
215 |
|
} |
216 |
|
int paramTypeEnd = n + 1; |
217 |
|
int paramTypeStart = 0; |
218 |
|
while (n >= 0) { |
219 |
|
char c = param.charAt(n); |
220 |
|
if ('[' == c || ']' == c || Parser.WHITESPACE.indexOf(c)>=0) { |
221 |
|
paramTypeStart = n + 1; |
222 |
|
break; |
223 |
|
} |
224 |
|
else { |
225 |
|
-- n; |
226 |
|
} |
227 |
|
} |
228 |
|
|
229 |
|
String paramType; |
230 |
|
String paramName; |
231 |
|
if (0 != paramNameStart) { |
232 |
|
paramType=param.substring(paramTypeStart, paramTypeEnd); |
233 |
|
paramName=param.substring(paramNameStart); |
234 |
} |
} |
235 |
|
else { |
236 |
|
paramName = ""; |
237 |
|
StringBuffer paramTypeBuffer = new StringBuffer(); |
238 |
|
for (int i=0; i<param.length(); ++i) { |
239 |
|
char c = param.charAt(i); |
240 |
|
if ('[' != c && ']' != c && Parser.WHITESPACE.indexOf(c)<0) { |
241 |
|
paramTypeBuffer.append(c); |
242 |
|
} |
243 |
|
} |
244 |
|
paramType = paramTypeBuffer.toString(); |
245 |
|
} |
246 |
String dimSuffix=""; |
String dimSuffix=""; |
247 |
|
/* |
248 |
while (paramName.length()>0 && "[]".indexOf(paramName.charAt(paramName.length()-1))>=0) { |
while (paramName.length()>0 && "[]".indexOf(paramName.charAt(paramName.length()-1))>=0) { |
249 |
dimSuffix=paramName.charAt(paramName.length()-1)+dimSuffix; |
dimSuffix=paramName.charAt(paramName.length()-1)+dimSuffix; |
250 |
paramName=paramName.substring(0,paramName.length()-1).trim(); |
paramName=paramName.substring(0,paramName.length()-1).trim(); |
253 |
if (paramType.indexOf("][")>=0 && paramType.indexOf("[][]")<0) { |
if (paramType.indexOf("][")>=0 && paramType.indexOf("[][]")<0) { |
254 |
throw new Error("dimSuffix='"+dimSuffix+"' paramType='"+paramType+"'"); |
throw new Error("dimSuffix='"+dimSuffix+"' paramType='"+paramType+"'"); |
255 |
} |
} |
256 |
|
*/ |
257 |
|
for (int i=0; i<param.length(); ++i) { |
258 |
|
if ('[' == param.charAt(i)) { |
259 |
|
dimSuffix += "[]"; |
260 |
|
} |
261 |
|
} |
262 |
|
paramType+=dimSuffix; |
263 |
|
|
264 |
|
if (paramType.startsWith("[")) { |
265 |
|
System.err.println("broken param type in " + rc + " in " +containingClass); |
266 |
|
} |
267 |
|
|
268 |
parameterList.add(new ParameterImpl(paramName, paramType, |
parameterList.add(new ParameterImpl(paramName, paramType, |
269 |
((ClassDocImpl)containingClass).typeForString(paramType))); |
((ClassDocImpl)containingClass).typeForString(paramType))); |
270 |
|
|