-/*
- * Created on 23.11.2004
+ /* Created on 23.11.2004
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
import net.sourceforge.phpeclipse.xdebug.core.Base64;
import net.sourceforge.phpeclipse.xdebug.core.PHPDebugUtils;
+import org.eclipse.debug.core.DebugEvent;
import org.eclipse.debug.core.DebugException;
import org.eclipse.debug.core.model.IValue;
import org.eclipse.debug.core.model.IVariable;
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
+
public abstract class XDebugAbstractValue extends XDebugElement implements IValue {
private IVariable[] fVariables;
- protected String fValueString;
- protected String fTypeName;
+ private String fValueString;
+ private String fTypeName;
private boolean fhasChanged;
- public XDebugAbstractValue(XDebugStackFrame frame, Node varNode) {
- super((XDebugTarget) frame.getDebugTarget());
+ public XDebugAbstractValue(XDebugStackFrame frame, Node varNode) throws DebugException {
+ super(frame == null ? null : (XDebugTarget) frame.getDebugTarget());
fTypeName = PHPDebugUtils.getAttributeValue(varNode,"type");
NumChildren = Integer.parseInt(PHPDebugUtils.getAttributeValue(varNode, "numchildren"));
}
- NodeList property = varNode.getChildNodes();
if (NumChildren > 0) {
+ NodeList property = varNode.getChildNodes();
renderValueString(""+property.getLength());
fVariables = new IVariable[property.getLength()];
for (int i = 0; i<property.getLength(); i++) {
} catch (NullPointerException e) {
str="";
}
-
-
+
String Encoding = PHPDebugUtils.getAttributeValue(varNode,"encoding");
if (Encoding.equals("base64")) {
return (fVariables.length > 0);
}
- public abstract void renderValueString(String data);
+ public abstract void renderValueString(String data) throws DebugException;
public abstract boolean verifyValue(String expression);
- public boolean setValue(String expression) {
- if (!verifyValue(expression))
+ public boolean setValue(String expression) throws DebugException {
+ if (!verifyValue(expression)) {
return false;
- if( getDebugTarget() == null ) {
- renderValueString(expression);
- } else {
- /* if(((XDebugTarget) getDebugTarget()).setVarValue(fVariable.getFullName(),expression)) {
- renderValueString(expression);
- return true;
- }*/
- }
- return false;
+ }
+
+ renderValueString(expression);
+ fireEvent(new DebugEvent(this, DebugEvent.CHANGE, DebugEvent.CONTENT));
+
+ return true;
}
public boolean supportsValueModification() {
return false;
}
+
+ public void setValueString(String valueString) {
+ fValueString = valueString;
+ }
}
\ No newline at end of file