64 |
import java.util.LinkedHashSet; |
import java.util.LinkedHashSet; |
65 |
import java.util.LinkedList; |
import java.util.LinkedList; |
66 |
import java.util.List; |
import java.util.List; |
67 |
|
import java.util.ListIterator; |
68 |
import java.util.Map; |
import java.util.Map; |
69 |
import java.util.Properties; |
import java.util.Properties; |
70 |
import java.util.Set; |
import java.util.Set; |
322 |
private void printPackagePageClasses(HtmlPage output, ClassDoc[] classDocs, String header) |
private void printPackagePageClasses(HtmlPage output, ClassDoc[] classDocs, String header) |
323 |
{ |
{ |
324 |
if (classDocs.length > 0) { |
if (classDocs.length > 0) { |
325 |
output.beginTable(CssClass.PACKAGE_SUMMARY); |
output.beginTable(CssClass.PACKAGE_SUMMARY, new String[] { "border", "width" }, new String[] { "1", "100%" }); |
326 |
output.rowDiv(CssClass.TABLE_HEADER, header); |
output.rowDiv(CssClass.TABLE_HEADER, header); |
327 |
|
|
328 |
for (int i=0; i<classDocs.length; ++i) { |
for (int i=0; i<classDocs.length; ++i) { |
341 |
} |
} |
342 |
} |
} |
343 |
output.endTable(); |
output.endTable(); |
344 |
|
output.print("\n"); |
345 |
} |
} |
346 |
} |
} |
347 |
|
|
483 |
if (node.classDoc.isIncluded()) { |
if (node.classDoc.isIncluded()) { |
484 |
output.print(node.classDoc.containingPackage().name()); |
output.print(node.classDoc.containingPackage().name()); |
485 |
output.print("."); |
output.print("."); |
486 |
|
output.beginSpan(CssClass.TREE_LINK); |
487 |
printType(output, node.classDoc); |
printType(output, node.classDoc); |
488 |
|
output.endSpan(CssClass.TREE_LINK); |
489 |
} |
} |
490 |
else { |
else { |
491 |
output.print(node.classDoc.qualifiedName()); |
output.print(node.classDoc.qualifiedName()); |
492 |
} |
} |
493 |
|
ClassDoc[] interfaces = node.classDoc.interfaces(); |
494 |
|
if (interfaces.length > 0) { |
495 |
|
output.print(" (implements "); |
496 |
|
for (int i=0; i<interfaces.length; ++i) { |
497 |
|
ClassDoc implemented = interfaces[i]; |
498 |
|
if (i > 0) { |
499 |
|
output.print(", "); |
500 |
|
} |
501 |
|
if (implemented.isIncluded()) { |
502 |
|
output.print(implemented.containingPackage().name()); |
503 |
|
output.print("."); |
504 |
|
printType(output, implemented); |
505 |
|
} |
506 |
|
else { |
507 |
|
output.print(implemented.qualifiedTypeName()); |
508 |
|
} |
509 |
|
} |
510 |
|
output.print(" )"); |
511 |
|
} |
512 |
|
|
513 |
output.endElement("li"); |
output.endElement("li"); |
514 |
output.beginElement("ul"); |
output.beginElement("ul"); |
515 |
Iterator it = node.children.iterator(); |
Iterator it = node.children.iterator(); |
601 |
output.beginBody(); |
output.beginBody(); |
602 |
printNavBarTop(output, "full-tree"); |
printNavBarTop(output, "full-tree"); |
603 |
|
|
604 |
output.div(CssClass.PACKAGE_TREE_TITLE, "Hierarchy"); |
output.div(CssClass.PACKAGE_TREE_TITLE, "Hierarchy for All Packages"); |
605 |
|
|
606 |
|
output.beginDiv(CssClass.FULL_TREE_PACKAGELIST); |
607 |
|
output.div(CssClass.FULL_TREE_PACKAGELIST_HEADER, "Package Hierarchies:"); |
608 |
|
output.beginDiv(CssClass.FULL_TREE_PACKAGELIST_ITEM); |
609 |
|
Set allPackages = getAllPackages(); |
610 |
|
Iterator it = allPackages.iterator(); |
611 |
|
while (it.hasNext()) { |
612 |
|
PackageDoc packageDoc = (PackageDoc)it.next(); |
613 |
|
output.beginAnchor(getPackageURL(packageDoc) + "/tree" + filenameExtension); |
614 |
|
output.print(packageDoc.name()); |
615 |
|
output.endAnchor(); |
616 |
|
if (it.hasNext()) { |
617 |
|
output.print(", "); |
618 |
|
} |
619 |
|
} |
620 |
|
output.endDiv(CssClass.FULL_TREE_PACKAGELIST_ITEM); |
621 |
|
output.endDiv(CssClass.FULL_TREE_PACKAGELIST); |
622 |
|
|
623 |
ClassDoc[] classDocs = getRootDoc().classes(); |
ClassDoc[] classDocs = getRootDoc().classes(); |
624 |
printClassTree(output, classDocs); |
printClassTree(output, classDocs); |
747 |
output.beginPage("Package Menu", getOutputCharset()); |
output.beginPage("Package Menu", getOutputCharset()); |
748 |
output.beginBody(); |
output.beginBody(); |
749 |
|
|
750 |
|
output.beginSpan(CssClass.PACKAGE_MENU_ENTRY); |
751 |
|
output.beginAnchor("all-classes" + filenameExtension, |
752 |
|
null, |
753 |
|
"classes"); |
754 |
|
output.print("All Classes"); |
755 |
|
output.endAnchor(); |
756 |
|
|
757 |
output.div(CssClass.PACKAGE_MENU_TITLE, "Packages"); |
output.div(CssClass.PACKAGE_MENU_TITLE, "Packages"); |
758 |
|
|
759 |
output.beginDiv(CssClass.PACKAGE_MENU_LIST); |
output.beginDiv(CssClass.PACKAGE_MENU_LIST); |
762 |
Iterator it = packageDocs.iterator(); |
Iterator it = packageDocs.iterator(); |
763 |
while (it.hasNext()) { |
while (it.hasNext()) { |
764 |
PackageDoc packageDoc = (PackageDoc)it.next(); |
PackageDoc packageDoc = (PackageDoc)it.next(); |
765 |
output.beginDiv(CssClass.PACKAGE_MENU_ENTRY); |
output.beginSpan(CssClass.PACKAGE_MENU_ENTRY); |
766 |
output.beginAnchor(getPackageURL(packageDoc) + "classes" + filenameExtension, |
output.beginAnchor(getPackageURL(packageDoc) + "/classes" + filenameExtension, |
767 |
null, |
null, |
768 |
"classes"); |
"classes"); |
769 |
if (packageDoc.name().length() > 0) { |
if (packageDoc.name().length() > 0) { |
773 |
output.print("<unnamed package>"); |
output.print("<unnamed package>"); |
774 |
} |
} |
775 |
output.endAnchor(); |
output.endAnchor(); |
776 |
output.endDiv(CssClass.PACKAGE_MENU_ENTRY); |
output.endSpan(CssClass.PACKAGE_MENU_ENTRY); |
777 |
|
output.br(); |
778 |
} |
} |
779 |
|
|
780 |
output.endDiv(CssClass.PACKAGE_MENU_LIST); |
output.endDiv(CssClass.PACKAGE_MENU_LIST); |
790 |
for (int i=0; i<classDocs.length; ++i) { |
for (int i=0; i<classDocs.length; ++i) { |
791 |
ClassDoc classDoc = classDocs[i]; |
ClassDoc classDoc = classDocs[i]; |
792 |
if (classDoc.isIncluded()) { |
if (classDoc.isIncluded()) { |
793 |
output.beginDiv(CssClass.CLASS_MENU_ENTRY); |
CssClass entryClass; |
794 |
|
if (classDoc.isInterface()) { |
795 |
|
entryClass = CssClass.CLASS_MENU_ENTRY_INTERFACE; |
796 |
|
} |
797 |
|
else { |
798 |
|
entryClass = CssClass.CLASS_MENU_ENTRY_CLASS; |
799 |
|
} |
800 |
|
output.beginSpan(entryClass); |
801 |
output.beginAnchor(getClassDocURL(output, classDoc), |
output.beginAnchor(getClassDocURL(output, classDoc), |
802 |
classDoc.qualifiedTypeName(), |
classDoc.qualifiedTypeName(), |
803 |
"content"); |
"content"); |
804 |
output.print(classDoc.name()); |
output.print(classDoc.name()); |
805 |
output.endAnchor(); |
output.endAnchor(); |
806 |
output.endDiv(CssClass.CLASS_MENU_ENTRY); |
output.endSpan(entryClass); |
807 |
|
output.br(); |
808 |
} |
} |
809 |
} |
} |
810 |
|
|
958 |
private void printDeprecationSummary(HtmlPage output, List docs, String header) |
private void printDeprecationSummary(HtmlPage output, List docs, String header) |
959 |
{ |
{ |
960 |
if (!docs.isEmpty()) { |
if (!docs.isEmpty()) { |
961 |
output.beginTable(CssClass.DEPRECATION_SUMMARY); |
output.beginTable(CssClass.DEPRECATION_SUMMARY, new String[] { "border", "width" }, new String[] { "1", "100%" }); |
962 |
output.rowDiv(CssClass.TABLE_HEADER, header); |
output.rowDiv(CssClass.TABLE_HEADER, header); |
963 |
|
|
964 |
Iterator it = docs.iterator(); |
Iterator it = docs.iterator(); |
990 |
output.endRow(); |
output.endRow(); |
991 |
} |
} |
992 |
output.endTable(); |
output.endTable(); |
993 |
|
output.print("\n"); |
994 |
} |
} |
995 |
} |
} |
996 |
|
|
1195 |
|
|
1196 |
private void printOverviewPackages(HtmlPage output, Collection packageDocs, String header) |
private void printOverviewPackages(HtmlPage output, Collection packageDocs, String header) |
1197 |
{ |
{ |
1198 |
output.beginTable(CssClass.OVERVIEW_SUMMARY); |
output.endDiv(CssClass.TABLE_CONTAINER); |
1199 |
|
output.beginTable(CssClass.OVERVIEW_SUMMARY, new String[] { "border", "width" }, new String[] { "1", "100%" }); |
1200 |
output.rowDiv(CssClass.TABLE_HEADER, header); |
output.rowDiv(CssClass.TABLE_HEADER, header); |
1201 |
|
|
1202 |
Iterator it = packageDocs.iterator(); |
Iterator it = packageDocs.iterator(); |
1205 |
output.beginRow(); |
output.beginRow(); |
1206 |
|
|
1207 |
output.beginCell(CssClass.OVERVIEW_SUMMARY_LEFT); |
output.beginCell(CssClass.OVERVIEW_SUMMARY_LEFT); |
1208 |
output.beginAnchor(getPackageURL(packageDoc) + "package-summary" + filenameExtension); |
output.beginAnchor(getPackageURL(packageDoc) + "/package-summary" + filenameExtension); |
1209 |
output.print(packageDoc.name()); |
output.print(packageDoc.name()); |
1210 |
output.endAnchor(); |
output.endAnchor(); |
1211 |
output.endCell(); |
output.endCell(); |
1216 |
output.endRow(); |
output.endRow(); |
1217 |
} |
} |
1218 |
output.endTable(); |
output.endTable(); |
1219 |
|
output.endDiv(CssClass.TABLE_CONTAINER); |
1220 |
} |
} |
1221 |
|
|
1222 |
private void printClassUsagePage(File packageDir, String pathToRoot, ClassDoc classDoc) |
private void printClassUsagePage(File packageDir, String pathToRoot, ClassDoc classDoc) |
1246 |
while (usageTypeIterator.hasNext()) { |
while (usageTypeIterator.hasNext()) { |
1247 |
UsageType usageType = (UsageType)usageTypeIterator.next(); |
UsageType usageType = (UsageType)usageTypeIterator.next(); |
1248 |
|
|
1249 |
output.beginTable(CssClass.USAGE_SUMMARY); |
output.beginTable(CssClass.USAGE_SUMMARY, new String[] { "border", "width" }, new String[] { "1", "100%" }); |
1250 |
output.rowDiv(CssClass.TABLE_HEADER, format("usagetype." + usageType.getId(), |
output.rowDiv(CssClass.TABLE_HEADER, format("usagetype." + usageType.getId(), |
1251 |
classDoc.qualifiedName())); |
classDoc.qualifiedName())); |
1252 |
|
|
1313 |
output.close(); |
output.close(); |
1314 |
} |
} |
1315 |
|
|
1316 |
|
private void printSuperTreeRec(HtmlPage output, ListIterator it) |
1317 |
|
{ |
1318 |
|
if (it.hasPrevious()) { |
1319 |
|
ClassDoc cd = (ClassDoc)it.previous(); |
1320 |
|
output.beginElement("li"); |
1321 |
|
if (it.hasPrevious()) { |
1322 |
|
printType(output, cd, true); |
1323 |
|
} |
1324 |
|
else { |
1325 |
|
output.print(cd.qualifiedTypeName()); |
1326 |
|
} |
1327 |
|
output.endElement("li"); |
1328 |
|
|
1329 |
|
if (it.hasPrevious()) { |
1330 |
|
output.beginElement("ul"); |
1331 |
|
printSuperTreeRec(output, it); |
1332 |
|
output.endElement("ul"); |
1333 |
|
} |
1334 |
|
} |
1335 |
|
} |
1336 |
|
|
1337 |
private void printClassPage(File packageDir, String pathToRoot, ClassDoc classDoc) |
private void printClassPage(File packageDir, String pathToRoot, ClassDoc classDoc) |
1338 |
throws IOException |
throws IOException |
1339 |
{ |
{ |
1352 |
getClassTypeName(classDoc) |
getClassTypeName(classDoc) |
1353 |
+ " " + classDoc.name()); |
+ " " + classDoc.name()); |
1354 |
|
|
1355 |
|
LinkedList superClasses = new LinkedList(); |
1356 |
|
for (ClassDoc cd = classDoc; cd != null; cd = cd.superclass()) { |
1357 |
|
superClasses.add(cd); |
1358 |
|
} |
1359 |
|
output.beginElement("ul"); |
1360 |
|
printSuperTreeRec(output, superClasses.listIterator(superClasses.size())); |
1361 |
|
output.endElement("ul"); |
1362 |
|
|
1363 |
|
if (null != classDoc.containingClass()) { |
1364 |
|
output.beginDiv(CssClass.CLASS_ENCLOSINGCLASS); |
1365 |
|
output.div(CssClass.CLASS_ENCLOSINGCLASS_HEADER, "Enclosing Class:"); |
1366 |
|
output.beginDiv(CssClass.CLASS_ENCLOSINGCLASS_ITEM); |
1367 |
|
printType(output, classDoc.containingClass()); |
1368 |
|
output.endDiv(CssClass.CLASS_ENCLOSINGCLASS_ITEM); |
1369 |
|
output.endDiv(CssClass.CLASS_ENCLOSINGCLASS); |
1370 |
|
} |
1371 |
|
|
1372 |
List knownDirectSubclasses = getKnownDirectSubclasses(classDoc); |
List knownDirectSubclasses = getKnownDirectSubclasses(classDoc); |
1373 |
if (!knownDirectSubclasses.isEmpty()) { |
if (!knownDirectSubclasses.isEmpty()) { |
1374 |
output.beginDiv(CssClass.CLASS_SUBCLASSES); |
output.beginDiv(CssClass.CLASS_SUBCLASSES); |
1375 |
output.div(CssClass.CLASS_SUBCLASSES_HEADER, "Known Direct Subclasses:"); |
output.div(CssClass.CLASS_SUBCLASSES_HEADER, "Known Direct Subclasses:"); |
1376 |
|
output.beginDiv(CssClass.CLASS_SUBCLASSES_ITEM); |
1377 |
Iterator it = knownDirectSubclasses.iterator(); |
Iterator it = knownDirectSubclasses.iterator(); |
1378 |
while (it.hasNext()) { |
while (it.hasNext()) { |
1379 |
printType(output, (ClassDoc)it.next()); |
printType(output, (ClassDoc)it.next()); |
1381 |
output.print(", "); |
output.print(", "); |
1382 |
} |
} |
1383 |
} |
} |
1384 |
|
output.endDiv(CssClass.CLASS_SUBCLASSES_ITEM); |
1385 |
output.endDiv(CssClass.CLASS_SUBCLASSES_HEADER); |
output.endDiv(CssClass.CLASS_SUBCLASSES_HEADER); |
1386 |
} |
} |
1387 |
|
|
1462 |
ProgramElementDoc[] memberDocs, String header) |
ProgramElementDoc[] memberDocs, String header) |
1463 |
{ |
{ |
1464 |
if (memberDocs.length > 0) { |
if (memberDocs.length > 0) { |
1465 |
output.beginTable(CssClass.CLASS_SUMMARY); |
output.beginDiv(CssClass.TABLE_CONTAINER); |
1466 |
|
output.beginTable(CssClass.CLASS_SUMMARY, new String[] { "border", "width" }, new String[] { "1", "100%" }); |
1467 |
output.rowDiv(CssClass.TABLE_HEADER, header); |
output.rowDiv(CssClass.TABLE_HEADER, header); |
1468 |
|
|
1469 |
output.beginRow(); |
output.beginRow(); |
1480 |
output.endCell(); |
output.endCell(); |
1481 |
output.endRow(); |
output.endRow(); |
1482 |
output.endTable(); |
output.endTable(); |
1483 |
|
output.endDiv(CssClass.TABLE_CONTAINER); |
1484 |
} |
} |
1485 |
} |
} |
1486 |
|
|
1527 |
output.print(" "); |
output.print(" "); |
1528 |
printType(output, ((MethodDoc)memberDoc).returnType()); |
printType(output, ((MethodDoc)memberDoc).returnType()); |
1529 |
} |
} |
1530 |
|
else if (memberDoc.isField()) { |
1531 |
|
output.print(" "); |
1532 |
|
printType(output, ((FieldDoc)memberDoc).type()); |
1533 |
|
} |
1534 |
output.print(" "); |
output.print(" "); |
1535 |
|
|
1536 |
if (optionLinkSource.getValue() && null != memberDoc.position()) { |
if (optionLinkSource.getValue() && null != memberDoc.position()) { |
1613 |
ExecutableMemberDoc execMemberDoc |
ExecutableMemberDoc execMemberDoc |
1614 |
= (ExecutableMemberDoc)memberDoc; |
= (ExecutableMemberDoc)memberDoc; |
1615 |
|
|
1616 |
Parameter[] parameters = execMemberDoc.parameters(); |
if (execMemberDoc.paramTags().length > 0) { |
|
if (parameters.length > 0) { |
|
1617 |
output.beginDiv(CssClass.MEMBER_DETAIL_PARAMETER_LIST); |
output.beginDiv(CssClass.MEMBER_DETAIL_PARAMETER_LIST); |
1618 |
output.div(CssClass.MEMBER_DETAIL_PARAMETER_HEADER, "Parameters:"); |
output.div(CssClass.MEMBER_DETAIL_PARAMETER_HEADER, "Parameters:"); |
1619 |
|
Parameter[] parameters = execMemberDoc.parameters(); |
1620 |
for (int j=0; j<parameters.length; ++j) { |
for (int j=0; j<parameters.length; ++j) { |
1621 |
Parameter parameter = parameters[j]; |
Parameter parameter = parameters[j]; |
1622 |
ParamTag[] paramTags = execMemberDoc.paramTags(); |
ParamTag[] paramTags = execMemberDoc.paramTags(); |
1627 |
break; |
break; |
1628 |
} |
} |
1629 |
} |
} |
1630 |
|
|
|
output.beginDiv(CssClass.MEMBER_DETAIL_PARAMETER_ITEM); |
|
|
output.print(parameter.name()); |
|
1631 |
if (null != paramTag) { |
if (null != paramTag) { |
1632 |
|
output.beginDiv(CssClass.MEMBER_DETAIL_PARAMETER_ITEM); |
1633 |
|
output.print(parameter.name()); |
1634 |
output.print(" - "); |
output.print(" - "); |
1635 |
printTags(output, paramTag.inlineTags(), false); |
printTags(output, paramTag.inlineTags(), false); |
1636 |
|
output.endDiv(CssClass.MEMBER_DETAIL_PARAMETER_ITEM); |
1637 |
} |
} |
|
output.endDiv(CssClass.MEMBER_DETAIL_PARAMETER_ITEM); |
|
1638 |
} |
} |
1639 |
output.endDiv(CssClass.MEMBER_DETAIL_PARAMETER_LIST); |
output.endDiv(CssClass.MEMBER_DETAIL_PARAMETER_LIST); |
1640 |
} |
} |
1683 |
} |
} |
1684 |
} |
} |
1685 |
|
|
1686 |
|
if (memberDoc.isField()) { |
1687 |
|
FieldDoc fieldDoc = ((FieldDoc)memberDoc); |
1688 |
|
if (null != fieldDoc.constantValue()) { |
1689 |
|
output.beginDiv(CssClass.MEMBER_DETAIL_THROWN_LIST); |
1690 |
|
output.div(CssClass.MEMBER_DETAIL_THROWN_HEADER, "Field Value:"); |
1691 |
|
output.div(CssClass.MEMBER_DETAIL_THROWN_ITEM, |
1692 |
|
fieldDoc.constantValueExpression().toString()); |
1693 |
|
output.endDiv(CssClass.MEMBER_DETAIL_THROWN_LIST); |
1694 |
|
} |
1695 |
|
} |
1696 |
|
|
1697 |
TagletContext context; |
TagletContext context; |
1698 |
if (memberDoc.isField()) { |
if (memberDoc.isField()) { |
1699 |
context = TagletContext.FIELD; |
context = TagletContext.FIELD; |
1736 |
ProgramElementDoc[] memberDocs, String header) |
ProgramElementDoc[] memberDocs, String header) |
1737 |
{ |
{ |
1738 |
if (memberDocs.length > 0) { |
if (memberDocs.length > 0) { |
1739 |
output.beginTable(CssClass.CLASS_SUMMARY); |
output.beginDiv(CssClass.TABLE_CONTAINER); |
1740 |
|
output.beginTable(CssClass.CLASS_SUMMARY, new String[] { "border", "width" }, new String[] { "1", "100%" }); |
1741 |
output.rowDiv(CssClass.TABLE_HEADER, header); |
output.rowDiv(CssClass.TABLE_HEADER, header); |
1742 |
|
|
1743 |
for (int i=0; i<memberDocs.length; ++i) { |
for (int i=0; i<memberDocs.length; ++i) { |
1755 |
output.endCell(); |
output.endCell(); |
1756 |
|
|
1757 |
output.beginCell(CssClass.CLASS_SUMMARY_RIGHT); |
output.beginCell(CssClass.CLASS_SUMMARY_RIGHT); |
1758 |
|
output.beginDiv(CssClass.CLASS_SUMMARY_RIGHT_LIST); |
1759 |
|
output.beginDiv(CssClass.CLASS_SUMMARY_RIGHT_SYNOPSIS); |
1760 |
output.print(" "); |
output.print(" "); |
1761 |
output.beginAnchor("#" + getMemberAnchor(memberDoc)); |
output.beginAnchor("#" + getMemberAnchor(memberDoc)); |
1762 |
output.print(memberDoc.name()); |
output.print(memberDoc.name()); |
1764 |
if (memberDoc.isConstructor() || memberDoc.isMethod()) { |
if (memberDoc.isConstructor() || memberDoc.isMethod()) { |
1765 |
printParameters(output, (ExecutableMemberDoc)memberDoc); |
printParameters(output, (ExecutableMemberDoc)memberDoc); |
1766 |
} |
} |
1767 |
output.endCell(); |
output.endDiv(CssClass.CLASS_SUMMARY_RIGHT_SYNOPSIS); |
1768 |
output.endRow(); |
output.beginDiv(CssClass.CLASS_SUMMARY_RIGHT_DESCRIPTION); |
1769 |
|
|
1770 |
output.beginRow(); |
Tag[] firstSentenceTags = memberDoc.firstSentenceTags(); |
1771 |
output.beginCell(); |
if (null != firstSentenceTags && firstSentenceTags.length > 0) { |
1772 |
output.endCell(); |
printTags(output, firstSentenceTags, true); |
1773 |
output.beginCell(); |
} |
1774 |
printTags(output, memberDoc.firstSentenceTags(), true); |
|
1775 |
|
output.endDiv(CssClass.CLASS_SUMMARY_RIGHT_DESCRIPTION); |
1776 |
|
output.endDiv(CssClass.CLASS_SUMMARY_RIGHT_LIST); |
1777 |
output.endCell(); |
output.endCell(); |
1778 |
output.endRow(); |
output.endRow(); |
1779 |
} |
} |
1780 |
output.endTable(); |
output.endTable(); |
1781 |
|
output.endDiv(CssClass.TABLE_CONTAINER); |
1782 |
} |
} |
1783 |
} |
} |
1784 |
|
|
1856 |
return output.getPathToRoot() |
return output.getPathToRoot() |
1857 |
+ "/" |
+ "/" |
1858 |
+ getPackageURL(classDoc.containingPackage()) |
+ getPackageURL(classDoc.containingPackage()) |
1859 |
|
+ "/" |
1860 |
+ classDoc.name() + filenameExtension; |
+ classDoc.name() + filenameExtension; |
1861 |
} |
} |
1862 |
|
|
1863 |
private String getMemberDocURL(HtmlPage output, ProgramElementDoc memberDoc) |
private String getMemberDocURL(HtmlPage output, ProgramElementDoc memberDoc) |
1864 |
{ |
{ |
1865 |
ClassDoc classDoc = memberDoc.containingClass(); |
ClassDoc classDoc = memberDoc.containingClass(); |
1866 |
String result = output.getPathToRoot() |
StringBuffer result = new StringBuffer(output.getPathToRoot()); |
1867 |
+ "/" |
result.append('/'); |
1868 |
+ getPackageURL(classDoc.containingPackage()) |
result.append(getPackageURL(classDoc.containingPackage())); |
1869 |
+ classDoc.name() + filenameExtension + "#" + memberDoc.name(); |
result.append('/'); |
1870 |
|
result.append(classDoc.name()); |
1871 |
|
result.append(filenameExtension); |
1872 |
|
result.append('#'); |
1873 |
|
result.append(memberDoc.name()); |
1874 |
if (memberDoc instanceof ExecutableMemberDoc) { |
if (memberDoc instanceof ExecutableMemberDoc) { |
1875 |
result += ((ExecutableMemberDoc)memberDoc).signature(); |
result.append(((ExecutableMemberDoc)memberDoc).signature()); |
1876 |
} |
} |
1877 |
return result; |
return result.toString(); |
1878 |
} |
} |
1879 |
|
|
1880 |
private void printType(HtmlPage output, Type type) |
private void printType(HtmlPage output, Type type) |
1881 |
{ |
{ |
1882 |
|
printType(output, type, false); |
1883 |
|
} |
1884 |
|
|
1885 |
|
private void printType(HtmlPage output, Type type, boolean fullyQualified) |
1886 |
|
{ |
1887 |
ClassDoc asClassDoc = type.asClassDoc(); |
ClassDoc asClassDoc = type.asClassDoc(); |
1888 |
String url = null; |
String url = null; |
1889 |
if (null != asClassDoc && asClassDoc.isIncluded()) { |
if (null != asClassDoc && asClassDoc.isIncluded()) { |
1890 |
url = getClassDocURL(output, asClassDoc); |
url = getClassDocURL(output, asClassDoc); |
1891 |
} |
} |
1892 |
else /* if (!type.isPrimitive()) */ { |
else if (!type.isPrimitive()) { |
1893 |
if (type.qualifiedTypeName().length() > type.typeName().length()) { |
if (type.qualifiedTypeName().length() > type.typeName().length()) { |
1894 |
String packageName = type.qualifiedTypeName(); |
String packageName = type.qualifiedTypeName(); |
1895 |
packageName = packageName.substring(0, packageName.length() - type.typeName().length() - 1); |
packageName = packageName.substring(0, packageName.length() - type.typeName().length() - 1); |
1908 |
|
|
1909 |
|
|
1910 |
if (null != url) { |
if (null != url) { |
1911 |
output.beginAnchor(url); |
if (fullyQualified) { |
1912 |
output.print(asClassDoc.name()); |
output.beginAnchor(url); |
1913 |
output.endAnchor(); |
output.print(asClassDoc.qualifiedTypeName()); |
1914 |
|
output.endAnchor(); |
1915 |
|
} |
1916 |
|
else { |
1917 |
|
StringBuffer title = new StringBuffer(); |
1918 |
|
title.append(getClassTypeName(asClassDoc)); |
1919 |
|
title.append(" in "); |
1920 |
|
title.append(asClassDoc.containingPackage().name()); |
1921 |
|
output.beginAnchor(url, title.toString()); |
1922 |
|
output.print(asClassDoc.name()); |
1923 |
|
output.endAnchor(); |
1924 |
|
} |
1925 |
output.print(asClassDoc.dimension()); |
output.print(asClassDoc.dimension()); |
1926 |
} |
} |
1927 |
else { |
else { |
1933 |
{ |
{ |
1934 |
super.printTaglets(tags, context, new TagletPrinter() { |
super.printTaglets(tags, context, new TagletPrinter() { |
1935 |
public void printTagletString(String tagletString) { |
public void printTagletString(String tagletString) { |
1936 |
|
output.beginDiv(CssClass.TAGLET); |
1937 |
output.print(tagletString); |
output.print(tagletString); |
1938 |
|
output.endDiv(CssClass.TAGLET); |
1939 |
} |
} |
1940 |
}); |
}); |
1941 |
} |
} |
1943 |
private String getPackageURL(PackageDoc packageDoc) |
private String getPackageURL(PackageDoc packageDoc) |
1944 |
{ |
{ |
1945 |
if (packageDoc.name().length() > 0) { |
if (packageDoc.name().length() > 0) { |
1946 |
return packageDoc.name().replace('.', '/') + '/'; |
return packageDoc.name().replace('.', '/'); |
1947 |
} |
} |
1948 |
else { |
else { |
1949 |
return ""; |
return ""; |
1978 |
} |
} |
1979 |
} |
} |
1980 |
|
|
1981 |
printNotice("Writing HTML overview file"); |
printNotice("Writing overview files..."); |
1982 |
printFrameSetPage(); |
printFrameSetPage(); |
1983 |
printPackagesMenuPage(); |
printPackagesMenuPage(); |
1984 |
printAllClassesMenuPage(); |
printAllClassesMenuPage(); |
1985 |
printOverviewPage(); |
printOverviewPage(); |
1986 |
printPackagesListFile(); |
printPackagesListFile(); |
1987 |
if (!optionNoTree.getValue()) { |
if (!optionNoTree.getValue()) { |
1988 |
|
printNotice("Writing full tree..."); |
1989 |
printFullTreePage(); |
printFullTreePage(); |
1990 |
} |
} |
1991 |
if (!optionNoIndex.getValue()) { |
if (!optionNoIndex.getValue()) { |
1992 |
|
printNotice("Writing index..."); |
1993 |
if (!optionSplitIndex.getValue()) { |
if (!optionSplitIndex.getValue()) { |
1994 |
printIndexPage(); |
printIndexPage(); |
1995 |
} |
} |
2104 |
{ |
{ |
2105 |
StringBuffer result = new StringBuffer(); |
StringBuffer result = new StringBuffer(); |
2106 |
while (!subDir.equals(rootDir)) { |
while (!subDir.equals(rootDir)) { |
2107 |
|
if (result.length() > 0) { |
2108 |
|
result.append("/"); |
2109 |
|
} |
2110 |
subDir = subDir.getParentFile(); |
subDir = subDir.getParentFile(); |
2111 |
result.append("../"); |
result.append(".."); |
2112 |
} |
} |
2113 |
if (0 == result.length()) { |
if (0 == result.length()) { |
2114 |
result.append("."); |
result.append("."); |
2147 |
|
|
2148 |
private String getFullModifiers(ProgramElementDoc memberDoc) |
private String getFullModifiers(ProgramElementDoc memberDoc) |
2149 |
{ |
{ |
2150 |
if (memberDoc.isClass() && ((ClassDoc)memberDoc).isAbstract()) { |
StringBuffer result = new StringBuffer(); |
2151 |
return memberDoc.modifiers() + " abstract"; |
if (memberDoc.isPackagePrivate()) { |
2152 |
|
result.append("(package private) "); |
2153 |
} |
} |
2154 |
else { |
result.append(memberDoc.modifiers()); |
2155 |
return memberDoc.modifiers(); |
if (memberDoc.isClass() && ((ClassDoc)memberDoc).isAbstract()) { |
2156 |
|
result.append(" abstract"); |
2157 |
} |
} |
2158 |
|
return result.toString(); |
2159 |
} |
} |
2160 |
|
|
2161 |
protected DocletOption[] getOptions() |
protected DocletOption[] getOptions() |