123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- /* -*- 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.ajdoc;
- import org.aspectj.tools.doclets.standard.AbstractStandard;
- import org.aspectj.tools.doclets.standard.Standard;
-
- import com.sun.javadoc.DocErrorReporter;
- import com.sun.javadoc.RootDoc;
-
- import java.io.IOException;
- import java.util.List;
-
- /**
- */
- public interface DocletProxy {
- public static final DocletProxy STANDARD
- = JavadocStandardProxy.SINGLETON;
- public static final DocletProxy DEFAULT
- = StandardProxy.SINGLETON;
- public int optionLength(String arg);
- public boolean start(RootDoc root)
- throws IOException;
- public boolean validOptions(List options, DocErrorReporter handler)
- throws IOException;
- }
-
- /**
- * This proxy delegates to Standard singleton,
- * but delays alerts about it being unavailable until first use
- */
- class StandardProxy implements DocletProxy {
- public static final DocletProxy SINGLETON = new StandardProxy();
- private StandardProxy() { }
-
- /** check and delegate to standard */
- public int optionLength(String arg) {
- return Standard.optionLength(arg);
- }
- /** check and delegate to standard */
- public boolean validOptions(List options, DocErrorReporter handler)
- throws IOException {
- return AbstractStandard.validOptions(docletOptions(options), handler);
- }
- // todo: validate that this is the expected format for doclet options
- protected String[][] docletOptions(List options) {
- if ((null == options) || (1 > options.size())) {
- return new String[][]{};
- }
- Object[] ra = options.toArray();
- String[] strs = new String[ra.length];
- for (int i = 0; i < ra.length; i++) {
- strs[i] = (null == ra[i] ? null : ra[i].toString());
- }
- return new String[][] {strs};
- }
-
- /** check and delegate to standard */
- public boolean start(RootDoc root) throws IOException {
- return Standard.start(root);
- }
- } // StandardProxy
-
- /**
- * This proxy delegates to javadoc Standard singleton.
- */
- class JavadocStandardProxy implements DocletProxy {
- public static final DocletProxy SINGLETON = new JavadocStandardProxy();
- private JavadocStandardProxy() { }
-
- /** check and delegate to standard */
- public int optionLength(String arg) {
- return com.sun.tools.doclets.standard.Standard.optionLength(arg);
- }
- /** check and delegate to standard */
- public boolean validOptions(List options, DocErrorReporter handler)
- throws IOException {
- return com.sun.tools.doclets.standard.Standard.validOptions(docletOptions(options), handler);
- }
- // todo: validate that this is the expected format for doclet options
- protected String[][] docletOptions(List options) {
- if ((null == options) || (1 > options.size())) {
- return new String[][]{};
- }
- Object[] ra = options.toArray();
- String[] strs = new String[ra.length];
- for (int i = 0; i < ra.length; i++) {
- strs[i] = (null == ra[i] ? null : ra[i].toString());
- }
- return new String[][] {strs};
- }
-
- /** check and delegate to standard */
- public boolean start(RootDoc root) throws IOException {
- return com.sun.tools.doclets.standard.Standard.start(root);
- }
- } // JavadocStandardProxy
-
- /** Wrap a Throwable as a RuntimeException
- * This will render stack trace as the delegate stack trace,
- * notwithstanding any call to fillInStackTrace.
- class ExceptionWrapper extends RuntimeException {
- Throwable delegate;
- public ExceptionWrapper(Throwable t) {
- delegate = (null == t ? new Error("null") : t);
- }
- public void printStackTrace() {
- delegate.printStackTrace();
- }
- public void printStackTrace(PrintStream stream) {
- delegate.printStackTrace(stream);
- }
- public void printStackTrace(PrintWriter stream) {
- delegate.printStackTrace(stream);
- }
- public String getMessage() {
- return delegate.getMessage();
- }
- public String getLocalizedMessage() {
- return delegate.getLocalizedMessage();
- }
- public Throwable fillInStackTrace() {
- return delegate.fillInStackTrace();
- }
- }
- */
|