/* 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 | |
} |