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