gnu.classpath.jdwp

Class VMMethod


public class VMMethod
extends Object

This class is really an amalgamation of two classes: one class represents a virtual machine method and the other represents the JDWP back-end's ID for the method.

Field Summary

static int
SIZE
Returns the size of a JDWP method ID

Constructor Summary

VMMethod(Class<T> klass, long id)
Constructs a new VMMethod object.

Method Summary

boolean
equals(Object obj)
Class<T>
getDeclaringClass()
Returns the method's declaring class
long
getId()
Returns the internal method ID for this method
LineTable
getLineTable()
"Returns line number information for the method, if present.
int
getModifiers()
Returns the method's modifier flags
String
getName()
Returns the name of this method
String
getSignature()
Returns the signature of this method
VariableTable
getVariableTable()
"Returns variable information for the method.
static VMMethod
readId(Class<T> klass, ByteBuffer bb)
Returns a VMMethod from the ID in the byte buffer
String
toString()
Returns a string representation of this method (not required but nice for debugging).
void
writeId(DataOutputStream ostream)
Writes the method's ID to the output stream

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

SIZE

public static final int SIZE
Returns the size of a JDWP method ID
Field Value:
8
See Also:
JdwpId.SIZE

Constructor Details

VMMethod

protected VMMethod(Class<T> klass,
                   long id)
Constructs a new VMMethod object. This constructor is protected so that only the factory methods of VMVirtualMachine can be used to create VMMethods.
Parameters:
klass - the method's containing class
id - method identifier, e.g., jmethodID

Method Details

equals

public boolean equals(Object obj)
Overrides:
equals in interface Object

getDeclaringClass

public Class<T> getDeclaringClass()
Returns the method's declaring class

getId

public long getId()
Returns the internal method ID for this method

getLineTable

public LineTable getLineTable()
            throws JdwpException
"Returns line number information for the method, if present. The line table maps source line numbers to the initial code index of the line. The line table is ordered by code index (from lowest to highest). The line number information is constant unless a new class definition is installed using RedefineClasses."
Returns:
the line table
Throws:
JdwpException -

getModifiers

public int getModifiers()
Returns the method's modifier flags

getName

public String getName()
Returns the name of this method

getSignature

public String getSignature()
Returns the signature of this method

getVariableTable

public VariableTable getVariableTable()
            throws JdwpException
"Returns variable information for the method. The variable table includes arguments and locals declared within the method. For instance methods, the "this" reference is included in the table. Also, synthetic variables may be present."
Returns:
the variable table
Throws:
JdwpException -

readId

public static VMMethod readId(Class<T> klass,
                              ByteBuffer bb)
            throws JdwpException,
                   IOException
Returns a VMMethod from the ID in the byte buffer
Parameters:
klass - the method's declaring class
bb - a ByteBuffer containing the method's ID
Throws:
JdwpException - for any errors creating the method
IOException - for any errors reading from the buffer

toString

public String toString()
Returns a string representation of this method (not required but nice for debugging).
Overrides:
toString in interface Object

writeId

public void writeId(DataOutputStream ostream)
            throws IOException
Writes the method's ID to the output stream
Parameters:
ostream - the output stream to which to write
Throws:
IOException - for any errors writing to the stream

VMMethod.java -- a method in a virtual machine Copyright (C) 2006, 2007 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.