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