104 ParamTag[] tags = input.isTypeVariableParamTag ? |
104 ParamTag[] tags = input.isTypeVariableParamTag ? |
105 ((MethodDoc)input.element).typeParamTags() : ((MethodDoc)input.element).paramTags(); |
105 ((MethodDoc)input.element).typeParamTags() : ((MethodDoc)input.element).paramTags(); |
106 Map<String, String> rankMap = getRankMap(input.isTypeVariableParamTag ? |
106 Map<String, String> rankMap = getRankMap(input.isTypeVariableParamTag ? |
107 (Object[]) ((MethodDoc)input.element).typeParameters() : |
107 (Object[]) ((MethodDoc)input.element).typeParameters() : |
108 (Object[]) ((MethodDoc)input.element).parameters()); |
108 (Object[]) ((MethodDoc)input.element).parameters()); |
109 for (int i = 0; i < tags.length; i++) { |
109 for (ParamTag tag : tags) { |
110 if (rankMap.containsKey(tags[i].parameterName()) && |
110 if (rankMap.containsKey(tag.parameterName()) && |
111 rankMap.get(tags[i].parameterName()).equals((input.tagId))) { |
111 rankMap.get(tag.parameterName()).equals((input.tagId))) { |
112 output.holder = input.element; |
112 output.holder = input.element; |
113 output.holderTag = tags[i]; |
113 output.holderTag = tag; |
114 output.inlineTags = input.isFirstSentence ? |
114 output.inlineTags = input.isFirstSentence ? |
115 tags[i].firstSentenceTags() : tags[i].inlineTags(); |
115 tag.firstSentenceTags() : tag.inlineTags(); |
116 return; |
116 return; |
117 } |
117 } |
118 } |
118 } |
119 } |
119 } |
120 |
120 |
267 private Content processParamTags(boolean isNonTypeParams, |
267 private Content processParamTags(boolean isNonTypeParams, |
268 ParamTag[] paramTags, Map<String, String> rankMap, TagletWriter writer, |
268 ParamTag[] paramTags, Map<String, String> rankMap, TagletWriter writer, |
269 Set<String> alreadyDocumented) { |
269 Set<String> alreadyDocumented) { |
270 Content result = writer.getOutputInstance(); |
270 Content result = writer.getOutputInstance(); |
271 if (paramTags.length > 0) { |
271 if (paramTags.length > 0) { |
272 for (int i = 0; i < paramTags.length; ++i) { |
272 for (ParamTag pt : paramTags) { |
273 ParamTag pt = paramTags[i]; |
|
274 String paramName = isNonTypeParams ? |
273 String paramName = isNonTypeParams ? |
275 pt.parameterName() : "<" + pt.parameterName() + ">"; |
274 pt.parameterName() : "<" + pt.parameterName() + ">"; |
276 if (! rankMap.containsKey(pt.parameterName())) { |
275 if (!rankMap.containsKey(pt.parameterName())) { |
277 writer.getMsgRetriever().warning(pt.position(), |
276 writer.getMsgRetriever().warning(pt.position(), |
278 isNonTypeParams ? |
277 isNonTypeParams ? |
279 "doclet.Parameters_warn" : |
278 "doclet.Parameters_warn" : |
280 "doclet.Type_Parameters_warn", |
279 "doclet.Type_Parameters_warn", |
281 paramName); |
280 paramName); |
282 } |
281 } |
283 String rank = rankMap.get(pt.parameterName()); |
282 String rank = rankMap.get(pt.parameterName()); |
284 if (rank != null && alreadyDocumented.contains(rank)) { |
283 if (rank != null && alreadyDocumented.contains(rank)) { |
285 writer.getMsgRetriever().warning(pt.position(), |
284 writer.getMsgRetriever().warning(pt.position(), |
286 isNonTypeParams ? |
285 isNonTypeParams ? |
287 "doclet.Parameters_dup_warn" : |
286 "doclet.Parameters_dup_warn" : |
288 "doclet.Type_Parameters_dup_warn", |
287 "doclet.Type_Parameters_dup_warn", |
289 paramName); |
288 paramName); |
290 } |
289 } |
291 result.addContent(processParamTag(isNonTypeParams, writer, pt, |
290 result.addContent(processParamTag(isNonTypeParams, writer, pt, |
292 pt.parameterName(), alreadyDocumented.size() == 0)); |
291 pt.parameterName(), alreadyDocumented.size() == 0)); |
293 alreadyDocumented.add(rank); |
292 alreadyDocumented.add(rank); |
294 } |
293 } |
295 } |
294 } |
296 return result; |
295 return result; |
297 } |
296 } |