123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- /* -*- Mode: JDE; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * This file is part of the debugger and core tools for the AspectJ(tm)
- * programming language; see http://aspectj.org
- *
- * The contents of this file are subject to the Mozilla Public License
- * Version 1.1 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License at
- * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/.
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is AspectJ.
- *
- * The Initial Developer of the Original Code is Xerox Corporation. Portions
- * created by Xerox Corporation are Copyright (C) 1999-2002 Xerox Corporation.
- * All Rights Reserved.
- */
-
- package org.aspectj.tools.doclets.standard;
-
- import org.aspectj.ajdoc.AspectDoc;
-
- import com.sun.javadoc.ClassDoc;
- import com.sun.javadoc.PackageDoc;
- import com.sun.tools.doclets.ClassTree;
- import com.sun.tools.doclets.DocletAbortException;
-
- import java.io.IOException;
- import java.util.List;
-
- public class AbstractTreeWriter
- extends com.sun.tools.doclets.standard.AbstractTreeWriter
- {
-
- protected boolean seenAspect = false;
- protected boolean aspectMode = false;
-
- protected AbstractTreeWriter(String filename, ClassTree classtree)
- throws IOException, DocletAbortException {
- super(filename, classtree);
- }
-
- protected AbstractTreeWriter(String path, String filename,
- ClassTree classtree, PackageDoc pkg)
- throws IOException, DocletAbortException {
- super(path, filename, classtree, pkg);
- }
-
- protected void generateLevelInfo(ClassDoc parent, List list) {
- if (list.size() > 0) {
- ul();
- for (int i = 0; i < list.size(); i++) {
- ClassDoc local = (ClassDoc)list.get(i);
- boolean isAspect = local instanceof org.aspectj.ajdoc.AspectDoc;
- if (aspectMode) {
- if (!local.qualifiedTypeName().equals("java.lang.Object")
- && !isAspect) {
- continue;
- }
- } else if (isAspect) {
- continue;
- }
- printPartialInfo(local);
- printExtendsImplements(parent, local);
- generateLevelInfo(local, classtree.subs(local));
- }
- ulEnd();
- }
- }
-
- protected void printExtendsImplements(ClassDoc parent, ClassDoc cd) {
- super.printExtendsImplements(parent, cd);
- if (cd instanceof AspectDoc) {
- printDominationInfo(((AspectDoc)cd).dominatees(), "dominates");
- printDominationInfo(((AspectDoc)cd).dominators(), "dominated by");
- }
- }
-
- protected void printDominationInfo(AspectDoc[] aspects,
- String whosOnTop) {
- if (aspects != null && aspects.length > 0) {
- print(" (" + whosOnTop + " ");
- for (int i = 0; i < aspects.length; i++) {
- if (i > 0) print(", ");
- printPreQualifiedClassLink(aspects[i]);
- }
- print(")");
- }
- }
-
-
- protected void generateTree(List list, String heading) {
- super.generateTree(list, heading);
- if (heading.equals("doclet.Class_Hierarchy")) {
- aspectMode = true;
- generateTree(list, "doclet.Aspect_Hierarchy");
- aspectMode = false;
- }
- }
- }
|