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