package net.sourceforge.phpeclipse.xdebug.php.model;
+import net.sourceforge.phpeclipse.xdebug.core.PHPDebugUtils;
+
+import org.eclipse.debug.core.DebugException;
+import org.eclipse.debug.core.model.IVariable;
import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
public class XDebugObjectValue extends XDebugAbstractValue {
- public XDebugObjectValue(XDebugVariable variable, Node varNode,
- String typeName) {
- super(variable, varNode, typeName);
- }
-
- public void setType(String typeName) {
- fType = XDebugAbstractValue.VALUETYPE_OBJECT;
- fTypeName = typeName;
+ private int NumChildren;
- }
-
- public void renderValueString(String data) {
- fValueString = data;
+ public XDebugObjectValue(XDebugStackFrame variable, Node value) throws DebugException {
+ super(variable, value);
- }
+ NumChildren = 0;
+ if (!PHPDebugUtils.getAttributeValue(value, "numchildren").equals("")) {
+ NumChildren = Integer.parseInt(PHPDebugUtils.getAttributeValue(value, "numchildren"));
+ }
- public boolean verifyValue(String expression) {
- return false;
+ if (NumChildren > 0) {
+ NodeList property = value.getChildNodes();
+ IVariable[] Variables = new IVariable[property.getLength()];
+
+ for (int i = 0; i<property.getLength(); i++) {
+ Node propertyNode = property.item(i);
+ Variables[i] = new XDebugVariable(variable, propertyNode);
+ }
+
+ setChildren(Variables);
+ }
+
+ String className = PHPDebugUtils.getAttributeValue(value,"classname");
+ if(!"".equals(className)) {
+ setValueString(className);
+ }
}
}
\ No newline at end of file