23 * have any questions. |
23 * have any questions. |
24 */ |
24 */ |
25 |
25 |
26 package com.sun.tools.doclets.formats.html; |
26 package com.sun.tools.doclets.formats.html; |
27 |
27 |
|
28 import java.util.*; |
|
29 |
|
30 import com.sun.javadoc.*; |
28 import com.sun.tools.doclets.internal.toolkit.*; |
31 import com.sun.tools.doclets.internal.toolkit.*; |
29 import com.sun.tools.doclets.internal.toolkit.util.*; |
32 import com.sun.tools.doclets.internal.toolkit.util.*; |
30 import com.sun.tools.doclets.internal.toolkit.builders.*; |
33 import com.sun.tools.doclets.internal.toolkit.builders.*; |
31 import com.sun.javadoc.*; |
|
32 |
|
33 import java.util.*; |
|
34 import com.sun.tools.doclets.internal.toolkit.taglets.*; |
34 import com.sun.tools.doclets.internal.toolkit.taglets.*; |
35 |
35 |
36 /** |
36 /** |
37 * Generate the Class Information Page. |
37 * Generate the Class Information Page. |
38 * @see com.sun.javadoc.ClassDoc |
38 * @see com.sun.javadoc.ClassDoc |
169 /** |
169 /** |
170 * {@inheritDoc} |
170 * {@inheritDoc} |
171 */ |
171 */ |
172 public void writeClassSignature(String modifiers) { |
172 public void writeClassSignature(String modifiers) { |
173 boolean isInterface = classDoc.isInterface(); |
173 boolean isInterface = classDoc.isInterface(); |
174 dl(); |
|
175 dt(); |
|
176 preNoNewLine(); |
174 preNoNewLine(); |
177 writeAnnotationInfo(classDoc); |
175 writeAnnotationInfo(classDoc); |
178 print(modifiers); |
176 print(modifiers); |
179 LinkInfoImpl linkInfo = new LinkInfoImpl( |
177 LinkInfoImpl linkInfo = new LinkInfoImpl( |
180 LinkInfoImpl.CONTEXT_CLASS_SIGNATURE, classDoc, false); |
178 LinkInfoImpl.CONTEXT_CLASS_SIGNATURE, classDoc, false); |
189 } |
187 } |
190 if (!isInterface) { |
188 if (!isInterface) { |
191 Type superclass = Util.getFirstVisibleSuperClass(classDoc, |
189 Type superclass = Util.getFirstVisibleSuperClass(classDoc, |
192 configuration()); |
190 configuration()); |
193 if (superclass != null) { |
191 if (superclass != null) { |
194 dt(); |
192 println(); |
195 print("extends "); |
193 print("extends "); |
196 printLink(new LinkInfoImpl( |
194 printLink(new LinkInfoImpl( |
197 LinkInfoImpl.CONTEXT_CLASS_SIGNATURE_PARENT_NAME, |
195 LinkInfoImpl.CONTEXT_CLASS_SIGNATURE_PARENT_NAME, |
198 superclass)); |
196 superclass)); |
199 } |
197 } |
206 if (! (classDoc.isPublic() || |
204 if (! (classDoc.isPublic() || |
207 Util.isLinkable(classDoc, configuration()))) { |
205 Util.isLinkable(classDoc, configuration()))) { |
208 continue; |
206 continue; |
209 } |
207 } |
210 if (counter == 0) { |
208 if (counter == 0) { |
211 dt(); |
209 println(); |
212 print(isInterface? "extends " : "implements "); |
210 print(isInterface? "extends " : "implements "); |
213 } else { |
211 } else { |
214 print(", "); |
212 print(", "); |
215 } |
213 } |
216 printLink(new LinkInfoImpl( |
214 printLink(new LinkInfoImpl( |
217 LinkInfoImpl.CONTEXT_CLASS_SIGNATURE_PARENT_NAME, |
215 LinkInfoImpl.CONTEXT_CLASS_SIGNATURE_PARENT_NAME, |
218 implIntfacs[i])); |
216 implIntfacs[i])); |
219 counter++; |
217 counter++; |
220 } |
218 } |
221 } |
219 } |
222 dlEnd(); |
|
223 preEnd(); |
220 preEnd(); |
224 p(); |
221 p(); |
225 } |
222 } |
226 |
223 |
227 /** |
224 /** |
358 List<ClassDoc> subclasses = classtree.subs(classDoc, false); |
356 List<ClassDoc> subclasses = classtree.subs(classDoc, false); |
359 if (subclasses.size() > 0) { |
357 if (subclasses.size() > 0) { |
360 dl(); |
358 dl(); |
361 dt(); |
359 dt(); |
362 strongText("doclet.Subclasses"); |
360 strongText("doclet.Subclasses"); |
|
361 dtEnd(); |
363 writeClassLinks(LinkInfoImpl.CONTEXT_SUBCLASSES, |
362 writeClassLinks(LinkInfoImpl.CONTEXT_SUBCLASSES, |
364 subclasses); |
363 subclasses); |
|
364 dlEnd(); |
365 } |
365 } |
366 } |
366 } |
367 } |
367 } |
368 |
368 |
369 /** |
369 /** |
374 List<ClassDoc> subInterfaces = classtree.allSubs(classDoc, false); |
374 List<ClassDoc> subInterfaces = classtree.allSubs(classDoc, false); |
375 if (subInterfaces.size() > 0) { |
375 if (subInterfaces.size() > 0) { |
376 dl(); |
376 dl(); |
377 dt(); |
377 dt(); |
378 strongText("doclet.Subinterfaces"); |
378 strongText("doclet.Subinterfaces"); |
|
379 dtEnd(); |
379 writeClassLinks(LinkInfoImpl.CONTEXT_SUBINTERFACES, |
380 writeClassLinks(LinkInfoImpl.CONTEXT_SUBINTERFACES, |
380 subInterfaces); |
381 subInterfaces); |
|
382 dlEnd(); |
381 } |
383 } |
382 } |
384 } |
383 } |
385 } |
384 |
386 |
385 /** |
387 /** |
412 List<Type> interfaceArray = Util.getAllInterfaces(classDoc, configuration); |
416 List<Type> interfaceArray = Util.getAllInterfaces(classDoc, configuration); |
413 if (classDoc.isClass() && interfaceArray.size() > 0) { |
417 if (classDoc.isClass() && interfaceArray.size() > 0) { |
414 dl(); |
418 dl(); |
415 dt(); |
419 dt(); |
416 strongText("doclet.All_Implemented_Interfaces"); |
420 strongText("doclet.All_Implemented_Interfaces"); |
|
421 dtEnd(); |
417 writeClassLinks(LinkInfoImpl.CONTEXT_IMPLEMENTED_INTERFACES, |
422 writeClassLinks(LinkInfoImpl.CONTEXT_IMPLEMENTED_INTERFACES, |
418 interfaceArray); |
423 interfaceArray); |
|
424 dlEnd(); |
419 } |
425 } |
420 } |
426 } |
421 |
427 |
422 /** |
428 /** |
423 * {@inheritDoc} |
429 * {@inheritDoc} |
428 List<Type> interfaceArray = Util.getAllInterfaces(classDoc, configuration); |
434 List<Type> interfaceArray = Util.getAllInterfaces(classDoc, configuration); |
429 if (classDoc.isInterface() && interfaceArray.size() > 0) { |
435 if (classDoc.isInterface() && interfaceArray.size() > 0) { |
430 dl(); |
436 dl(); |
431 dt(); |
437 dt(); |
432 strongText("doclet.All_Superinterfaces"); |
438 strongText("doclet.All_Superinterfaces"); |
|
439 dtEnd(); |
433 writeClassLinks(LinkInfoImpl.CONTEXT_SUPER_INTERFACES, |
440 writeClassLinks(LinkInfoImpl.CONTEXT_SUPER_INTERFACES, |
434 interfaceArray); |
441 interfaceArray); |
|
442 dlEnd(); |
435 } |
443 } |
436 } |
444 } |
437 |
445 |
438 /** |
446 /** |
439 * Generate links to the given classes. |
447 * Generate links to the given classes. |
572 if (outerClass.isInterface()) { |
579 if (outerClass.isInterface()) { |
573 strongText("doclet.Enclosing_Interface"); |
580 strongText("doclet.Enclosing_Interface"); |
574 } else { |
581 } else { |
575 strongText("doclet.Enclosing_Class"); |
582 strongText("doclet.Enclosing_Class"); |
576 } |
583 } |
|
584 dtEnd(); |
577 dd(); |
585 dd(); |
578 printLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_CLASS, outerClass, |
586 printLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_CLASS, outerClass, |
579 false)); |
587 false)); |
580 ddEnd(); |
588 ddEnd(); |
581 dlEnd(); |
589 dlEnd(); |