blob: 1be2970e9c97bdc0cbf8a44ce24ceb217cf470da [file] [log] [blame]
/* Copyright 2004 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.xmlbeans.impl.jam;
/**
* Represents a method of a java class.
*
* @author Patrick Calahan <email: pcal-at-bea-dot-com>
*/
public interface JMethod extends JInvokable {
/**
* Returns a JClass object representing the type of this methods
* return value. Note that void methods will return a JClass
* representing void.</p>
*/
public JClass getReturnType();
/**
* Return true if this method is declared final.
*/
public boolean isFinal();
/**
* Return true if this method is static.
*/
public boolean isStatic();
/**
* Return true if this member is final. Note that constructors are
* fields are never abstract.
*/
public boolean isAbstract();
/**
* Returns true if this method is declared native.
*/
public boolean isNative();
/**
* Returns true if this method is declared synchronized.
*/
public boolean isSynchronized();
/**
* <p>Returns a qualied name for this method as specified by
* <code>java.lang.reflect.Method.toString()</code>:</p>
*
* <p><i>
* Returns a string describing this Method. The string is formatted as
* the method access modifiers, if any, followed by the method return
* type, followed by a space, followed by the class declaring the method,
* followed by a period, followed by the method name, followed by a
* parenthesized, comma-separated list of the method's formal parameter
* types. If the method throws checked exceptions, the parameter list is
* followed by a space, followed by the word throws followed by a
* comma-separated list of the thrown exception types. For example:</i></p>
*
* <p><i>public boolean java.lang.Object.equals(java.lang.Object)</i></p>
*
* <p><i>The access modifiers are placed in canonical order as specified by
* "The Java Language Specification". This is public, protected or private
* first, and then other modifiers in the following order: abstract,
* static, final, synchronized native.</i></p>
*/
public String getQualifiedName();
/**
* Returns the name of this class in the format described in section
* 4.3.3 of the VM spec, 'Class File Format: Method Descriptors.'
* This is the nasty format of the name returned by
* java.lang.reflect.Method.getName(). For details, see
* http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html
*/
// public String getMethodDescriptor(); dunno if this is useful
}