gnu.classpath.jdwp.value

Class Value

Known Direct Subclasses:
ArrayValue, BooleanValue, ByteValue, CharValue, DoubleValue, FloatValue, IntValue, LongValue, ObjectValue, ShortValue, StringValue, VoidValue

public abstract class Value
extends Object

Superclass for all JDWP Values.

Constructor Summary

Value(byte tag)
Create a new value of type tag.

Method Summary

protected abstract Object
getObject()
Returns an object representing this type
byte
getTag()
Get the tag for this Value
static Object
getTaggedObject(ByteBuffer bb)
Get an untagged object from the ByteBuffer
static Object
getUntaggedObject(ByteBuffer bb, Class<T> type)
Get an untagged object from the ByteBuffer
protected abstract void
write(DataOutputStream os)
This method must write the value to the DataOutputStream in a manner appropriate for the type of the value.
void
writeTagged(DataOutputStream os)
Will write the given object as a tagged value to the DataOutputStream.
void
writeUntagged(DataOutputStream os)
Calls the dervied classes writeValue method to write its value to the DataOutputStream.

Methods inherited from class java.lang.Object

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

Constructor Details

Value

protected Value(byte tag)
Create a new value of type tag.
Parameters:
tag - the type of the value

Method Details

getObject

protected abstract Object getObject()
Returns an object representing this type
Returns:
an Object represntation of this value

getTag

public byte getTag()
Get the tag for this Value
Returns:
the byte tag of this Value

getTaggedObject

public static Object getTaggedObject(ByteBuffer bb)
            throws JdwpInternalErrorException,
                   InvalidObjectException,
                   InvalidTagException
Get an untagged object from the ByteBuffer
Parameters:
bb - the ByteBuffer to extract the value from
Returns:
an Object from the ByteBuffer of the type of the Class parameter

getUntaggedObject

public static Object getUntaggedObject(ByteBuffer bb,
                                       Class<T> type)
            throws JdwpInternalErrorException,
                   InvalidObjectException,
                   InvalidClassException
Get an untagged object from the ByteBuffer
Parameters:
bb - the ByteBuffer to extract the value from
type - a Class representing the type
Returns:
an Object from the ByteBuffer of the type of the Class parameter

write

protected abstract void write(DataOutputStream os)
            throws IOException
This method must write the value to the DataOutputStream in a manner appropriate for the type of the value.
Parameters:
os - DataOutputStream to write to
Throws:
IOException -

writeTagged

public void writeTagged(DataOutputStream os)
            throws IOException
Will write the given object as a tagged value to the DataOutputStream.
Parameters:
os - write the value here
Throws:
IOException -

writeUntagged

public void writeUntagged(DataOutputStream os)
            throws IOException
Calls the dervied classes writeValue method to write its value to the DataOutputStream.
Parameters:
os - write the value here
Throws:
IOException -

Value.java -- base class of JDWP values Copyright (C) 2007 Free Software Foundation 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 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.