package bluej.debugger.jdi;
import java.util.ArrayList;
import java.util.List;
import bluej.debugger.DebuggerClass;
import bluej.debugger.DebuggerField;
import bluej.utility.Debug;
import com.sun.jdi.ClassType;
import com.sun.jdi.Field;
import com.sun.jdi.InterfaceType;
import com.sun.jdi.ReferenceType;
| Represents an class running on the user (remote) machine.
|
| @author Michael Kolling
| @created December 26, 2000
|
public class JdiClass
extends DebuggerClass{
ReferenceType remoteClass;
List<Field> staticFields;
| Create a remote class object.
|
|@param obj the remote debugger object (Jdi code) this encapsulates.
|
public JdiClass(ReferenceType remoteClass)
{
this.remoteClass = remoteClass;
getRemoteFields();
}
|
| Return the name of this class (fully qualified).
|
| @return The class name
|
@Override
public String getName()
{
return remoteClass.name();
}
@Override
public List getStaticFields()
{
List<Field> visibleFields = remoteClass.visibleFields();
List<DebuggerField> rlist = new ArrayList<DebuggerField>(staticFields.size());
for (Field field : staticFields) {
rlist.add(new JdiField(field, null, ! visibleFields.contains(field)));
}
return rlist;
}
|
| Returns true if this represents a Java interface
|
@Override
public boolean isInterface()
{
return remoteClass instanceof InterfaceType;
}
|
| Returns true if this represents an enum
|
@Override
public boolean isEnum()
{
if (remoteClass instanceof ClassType) {
return JdiUtils.getJdiUtils().isEnum((ClassType) remoteClass);
}
return false;
}
| Get the list of fields for this object.
|
private void getRemoteFields()
{
staticFields = new ArrayList<Field>();
if (remoteClass != null) {
List<Field> allFields = remoteClass.allFields();
for (int i = 0; i < allFields.size(); i++) {
Field field = (Field) allFields.get(i);
if (field.isStatic())
staticFields.add(field);
}
}
else {
Debug.reportError("cannot get fields for remote class");
}
}
}
top,
use,
map,
class JdiClass
. JdiClass
. getName
. getStaticFields
. isInterface
. isEnum
. getRemoteFields
103 neLoCode
+ 13 LoComm