• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 1998, 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  */
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 a method of a java class.
33  *
34  * @since 1.2
35  * @author Robert Field
36  */
37 public interface MethodDoc extends ExecutableMemberDoc {
38 
39     /**
40      * Return true if this method is abstract
41      */
42     @Used
isAbstract()43     boolean isAbstract();
44 
45     /**
46      * Return true if this method is default
47      */
48     @Used
isDefault()49     boolean isDefault();
50 
51     /**
52      * Get return type.
53      *
54      * @return the return type of this method, null if it
55      * is a constructor.
56      */
57     @Used
returnType()58     Type returnType();
59 
60     /**
61      * Return the class containing the method that this method overrides.
62      *
63      * <p> <i>The <code>overriddenClass</code> method cannot
64      * accommodate certain generic type constructs.  The
65      * <code>overriddenType</code> method should be used instead.</i>
66      *
67      * @return a ClassDoc representing the superclass
68      *         defining a method that this method overrides, or null if
69      *         this method does not override.
70      */
71     @Unused
overriddenClass()72     ClassDoc overriddenClass();
73 
74     /**
75      * Return the type containing the method that this method overrides.
76      * It may be a <code>ClassDoc</code> or a <code>ParameterizedType</code>.
77      *
78      * @return the supertype whose method is overridden, or null if this
79      *         method does not override another in a superclass
80      * @since 1.5
81      */
82     @Unused
overriddenType()83     Type overriddenType();
84 
85     /**
86      * Return the method that this method overrides.
87      *
88      * @return a MethodDoc representing a method definition
89      * in a superclass this method overrides, null if
90      * this method does not override.
91      */
92     @Used
overriddenMethod()93     MethodDoc overriddenMethod();
94 
95     /**
96      * Tests whether this method overrides another.
97      * The overridden method may be one declared in a superclass or
98      * a superinterface (unlike {@link #overriddenMethod()}).
99      *
100      * <p> When a non-abstract method overrides an abstract one, it is
101      * also said to <i>implement</i> the other.
102      *
103      * @param meth  the other method to examine
104      * @return <tt>true</tt> if this method overrides the other
105      * @since 1.5
106      */
107     @Unused
overrides(MethodDoc meth)108     boolean overrides(MethodDoc meth);
109 }
110