Tue, 14 May 2013 15:04:06 -0700
8013852: update reference impl for type-annotations
Reviewed-by: jjg
Contributed-by: wdietl@gmail.com, steve.sides@oracle.com, joel.franck@oracle.com, alex.buckley@oracle.com
1 /*
2 * Copyright (c) 1997, 2012, 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 */
26 package com.sun.tools.javadoc;
28 import com.sun.javadoc.*;
30 import com.sun.source.util.TreePath;
31 import com.sun.tools.javac.code.Symbol.ClassSymbol;
32 import com.sun.tools.javac.code.Symbol.MethodSymbol;
34 /**
35 * Represents a constructor of a java class.
36 *
37 * <p><b>This is NOT part of any supported API.
38 * If you write code that depends on this, you do so at your own risk.
39 * This code and its internal interfaces are subject to change or
40 * deletion without notice.</b>
41 *
42 * @since 1.2
43 * @author Robert Field
44 * @author Neal Gafter (rewrite)
45 */
47 public class ConstructorDocImpl
48 extends ExecutableMemberDocImpl implements ConstructorDoc {
50 /**
51 * constructor.
52 */
53 public ConstructorDocImpl(DocEnv env, MethodSymbol sym) {
54 super(env, sym);
55 }
57 /**
58 * constructor.
59 */
60 public ConstructorDocImpl(DocEnv env, MethodSymbol sym, TreePath treePath) {
61 super(env, sym, treePath);
62 }
64 /**
65 * Return true if it is a constructor, which it is.
66 *
67 * @return true
68 */
69 public boolean isConstructor() {
70 return true;
71 }
73 /**
74 * Get the name.
75 *
76 * @return the name of the member qualified by class (but not package)
77 */
78 public String name() {
79 ClassSymbol c = sym.enclClass();
80 String n = c.name.toString();
81 for (c = c.owner.enclClass(); c != null; c = c.owner.enclClass()) {
82 n = c.name.toString() + "." + n;
83 }
84 return n;
85 }
87 /**
88 * Get the name.
89 *
90 * @return the qualified name of the member.
91 */
92 public String qualifiedName() {
93 return sym.enclClass().getQualifiedName().toString();
94 }
96 /**
97 * Returns a string representation of this constructor. Includes the
98 * qualified signature and any type parameters.
99 * Type parameters precede the class name, as they do in the syntax
100 * for invoking constructors with explicit type parameters using "new".
101 * (This is unlike the syntax for invoking methods with explicit type
102 * parameters.)
103 */
104 public String toString() {
105 return typeParametersString() + qualifiedName() + signature();
106 }
107 }