114 /** |
114 /** |
115 * Return the list of visible classes in this map. |
115 * Return the list of visible classes in this map. |
116 * |
116 * |
117 * @return the list of visible classes in this map. |
117 * @return the list of visible classes in this map. |
118 */ |
118 */ |
119 public List getVisibleClassesList() { |
119 public List<ClassDoc> getVisibleClassesList() { |
120 sort(visibleClasses); |
120 sort(visibleClasses); |
121 return visibleClasses; |
121 return visibleClasses; |
122 } |
122 } |
123 |
123 |
124 /** |
124 /** |
128 * @param configuation the current configuration of the doclet. |
128 * @param configuation the current configuration of the doclet. |
129 * @return the package private members inherited by the class. |
129 * @return the package private members inherited by the class. |
130 */ |
130 */ |
131 private List<ProgramElementDoc> getInheritedPackagePrivateMethods(Configuration configuration) { |
131 private List<ProgramElementDoc> getInheritedPackagePrivateMethods(Configuration configuration) { |
132 List<ProgramElementDoc> results = new ArrayList<ProgramElementDoc>(); |
132 List<ProgramElementDoc> results = new ArrayList<ProgramElementDoc>(); |
133 for (Iterator iter = visibleClasses.iterator(); iter.hasNext(); ) { |
133 for (Iterator<ClassDoc> iter = visibleClasses.iterator(); iter.hasNext(); ) { |
134 ClassDoc currentClass = (ClassDoc) iter.next(); |
134 ClassDoc currentClass = iter.next(); |
135 if (currentClass != classdoc && |
135 if (currentClass != classdoc && |
136 currentClass.isPackagePrivate() && |
136 currentClass.isPackagePrivate() && |
137 !Util.isLinkable(currentClass, configuration)) { |
137 !Util.isLinkable(currentClass, configuration)) { |
138 // Document these members in the child class because |
138 // Document these members in the child class because |
139 // the parent is inaccessible. |
139 // the parent is inaccessible. |
201 } |
201 } |
202 memberLevelMap.put(list.get(i), level); |
202 memberLevelMap.put(list.get(i), level); |
203 } |
203 } |
204 } |
204 } |
205 |
205 |
206 private void purgeMemberLevelMap(List list, String level) { |
206 private void purgeMemberLevelMap(List<ProgramElementDoc> list, String level) { |
207 for (int i = 0; i < list.size(); i++) { |
207 for (int i = 0; i < list.size(); i++) { |
208 Object key = getMemberKey((ProgramElementDoc)list.get(i)); |
208 Object key = getMemberKey(list.get(i)); |
209 Map memberLevelMap = (Map) memberNameMap.get(key); |
209 Map<ProgramElementDoc, String> memberLevelMap = memberNameMap.get(key); |
210 if (level.equals(memberLevelMap.get(list.get(i)))) |
210 if (level.equals(memberLevelMap.get(list.get(i)))) |
211 memberLevelMap.remove(list.get(i)); |
211 memberLevelMap.remove(list.get(i)); |
212 } |
212 } |
213 } |
213 } |
214 |
214 |
228 public void addMember(ProgramElementDoc programElementDoc) { |
228 public void addMember(ProgramElementDoc programElementDoc) { |
229 members.add(programElementDoc); |
229 members.add(programElementDoc); |
230 } |
230 } |
231 |
231 |
232 public boolean isEqual(MethodDoc member) { |
232 public boolean isEqual(MethodDoc member) { |
233 for (Iterator iter = members.iterator(); iter.hasNext(); ) { |
233 for (Iterator<ProgramElementDoc> iter = members.iterator(); iter.hasNext(); ) { |
234 MethodDoc member2 = (MethodDoc) iter.next(); |
234 MethodDoc member2 = (MethodDoc) iter.next(); |
235 if (Util.executableMembersEqual(member, member2)) { |
235 if (Util.executableMembersEqual(member, member2)) { |
236 members.add(member); |
236 members.add(member); |
237 return true; |
237 return true; |
238 } |
238 } |
436 } |
436 } |
437 } |
437 } |
438 return targetMembers.toArray(new AnnotationTypeElementDoc[]{}); |
438 return targetMembers.toArray(new AnnotationTypeElementDoc[]{}); |
439 } |
439 } |
440 |
440 |
441 private boolean found(List list, ProgramElementDoc elem) { |
441 private boolean found(List<ProgramElementDoc> list, ProgramElementDoc elem) { |
442 for (int i = 0; i < list.size(); i++) { |
442 for (int i = 0; i < list.size(); i++) { |
443 ProgramElementDoc pgmelem = (ProgramElementDoc)list.get(i); |
443 ProgramElementDoc pgmelem = list.get(i); |
444 if (Util.matches(pgmelem, elem)) { |
444 if (Util.matches(pgmelem, elem)) { |
445 return true; |
445 return true; |
446 } |
446 } |
447 } |
447 } |
448 return false; |
448 return false; |
453 * Is member overridden? The member is overridden if it is found in the |
453 * Is member overridden? The member is overridden if it is found in the |
454 * same level hierarchy e.g. member at level "11" overrides member at |
454 * same level hierarchy e.g. member at level "11" overrides member at |
455 * level "111". |
455 * level "111". |
456 */ |
456 */ |
457 private boolean isOverridden(ProgramElementDoc pgmdoc, String level) { |
457 private boolean isOverridden(ProgramElementDoc pgmdoc, String level) { |
458 Map memberLevelMap = (Map) memberNameMap.get(getMemberKey(pgmdoc)); |
458 Map<?,String> memberLevelMap = (Map<?,String>) memberNameMap.get(getMemberKey(pgmdoc)); |
459 if (memberLevelMap == null) |
459 if (memberLevelMap == null) |
460 return false; |
460 return false; |
461 String mappedlevel = null; |
461 String mappedlevel = null; |
462 Iterator iterator = memberLevelMap.values().iterator(); |
462 Iterator<String> iterator = memberLevelMap.values().iterator(); |
463 while (iterator.hasNext()) { |
463 while (iterator.hasNext()) { |
464 mappedlevel = (String)(iterator.next()); |
464 mappedlevel = iterator.next(); |
465 if (mappedlevel.equals(STARTLEVEL) || |
465 if (mappedlevel.equals(STARTLEVEL) || |
466 (level.startsWith(mappedlevel) && |
466 (level.startsWith(mappedlevel) && |
467 !level.equals(mappedlevel))) { |
467 !level.equals(mappedlevel))) { |
468 return true; |
468 return true; |
469 } |
469 } |
480 public boolean noVisibleMembers() { |
480 public boolean noVisibleMembers() { |
481 return noVisibleMembers; |
481 return noVisibleMembers; |
482 } |
482 } |
483 |
483 |
484 private ClassMember getClassMember(MethodDoc member) { |
484 private ClassMember getClassMember(MethodDoc member) { |
485 for (Iterator iter = memberNameMap.keySet().iterator(); iter.hasNext();) { |
485 for (Iterator<?> iter = memberNameMap.keySet().iterator(); iter.hasNext();) { |
486 Object key = iter.next(); |
486 Object key = iter.next(); |
487 if (key instanceof String) { |
487 if (key instanceof String) { |
488 continue; |
488 continue; |
489 } else if (((ClassMember) key).isEqual(member)) { |
489 } else if (((ClassMember) key).isEqual(member)) { |
490 return (ClassMember) key; |
490 return (ClassMember) key; |