• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved.
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * This code is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU General Public License version 2 only, as
7  * published by the Free Software Foundation.  Oracle designates this
8  * particular file as subject to the "Classpath" exception as provided
9  * by Oracle in the LICENSE file that accompanied this code.
10  *
11  * This code is distributed in the hope that it will be useful, but WITHOUT
12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14  * version 2 for more details (a copy is included in the LICENSE file that
15  * accompanied this code).
16  *
17  * You should have received a copy of the GNU General Public License version
18  * 2 along with this work; if not, write to the Free Software Foundation,
19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20  *
21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22  * or visit www.oracle.com if you need additional information or have any
23  * questions.
24  */
25 
26 package com.sun.javadoc;
27 
28 import com.google.doclava.annotation.Unused;
29 import com.google.doclava.annotation.Used;
30 
31 /**
32  * Represents the root of the program structure information
33  * for one run of javadoc.  From this root all other program
34  * structure information can be extracted.
35  * Also represents the command line information -- the
36  * packages, classes and options specified by the user.
37  *
38  * @since 1.2
39  * @author Robert Field
40  */
41 public interface RootDoc extends Doc, DocErrorReporter {
42 
43     /**
44      * Command line options.
45      * <p>
46      * For example, given:
47      * <pre>
48      *     javadoc -foo this that -bar other ...</pre>
49      *
50      * this method will return:
51      * <pre>
52      *      options()[0][0] = "-foo"
53      *      options()[0][1] = "this"
54      *      options()[0][2] = "that"
55      *      options()[1][0] = "-bar"
56      *      options()[1][1] = "other"</pre>
57      *
58      * @return an array of arrays of String.
59      */
60     @Unused
options()61     String[][] options();
62 
63     /**
64      * Return the packages
65      * <a href="package-summary.html#included">specified</a>
66      * on the command line.
67      * If <code>-subpackages</code> and <code>-exclude</code> options
68      * are used, return all the non-excluded packages.
69      *
70      * @return packages specified on the command line.
71      */
72     @Unused
specifiedPackages()73     PackageDoc[] specifiedPackages();
74 
75     /**
76      * Return the classes and interfaces
77      * <a href="package-summary.html#included">specified</a>
78      * as source file names on the command line.
79      *
80      * @return classes and interfaces specified on the command line.
81      */
82     @Unused
specifiedClasses()83     ClassDoc[] specifiedClasses();
84 
85     /**
86      * Return the
87      * <a href="package-summary.html#included">included</a>
88       classes and interfaces in all packages.
89      *
90      * @return included classes and interfaces in all packages.
91      */
92     @Used
classes()93     ClassDoc[] classes();
94 
95     /**
96      * Return a PackageDoc for the specified package name.
97      *
98      * @param name package name
99      *
100      * @return a PackageDoc holding the specified package, null if
101      * this package is not referenced.
102      */
103     @Used
packageNamed(String name)104     PackageDoc packageNamed(String name);
105 
106     /**
107      * Return a ClassDoc for the specified class or interface name.
108      *
109      * @param qualifiedName
110      * <a href="package-summary.html#qualified">qualified</a>
111      * class or package name
112      *
113      * @return a ClassDoc holding the specified class, null if
114      * this class is not referenced.
115      */
116     @Used
classNamed(String qualifiedName)117     ClassDoc classNamed(String qualifiedName);
118 }
119