package net.sourceforge.phpeclipse.xdebug.php.model;
+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.w3c.dom.Node;
public class XDebugStringValue extends XDebugAbstractValue {
- public XDebugStringValue(XDebugVariable variable, Node varNode,
- String typeName) {
- super(variable, varNode, typeName);
- }
+ public XDebugStringValue(XDebugStackFrame variable, Node value) throws DebugException {
+ super(variable, value);
- public void setType(String typeName) {
- fType = XDebugAbstractValue.VALUETYPE_STRING;
- fTypeName = typeName;
- }
+ String encoding = PHPDebugUtils.getAttributeValue(value, "encoding");
+ if (encoding.equals("base64")) {
+ rowValue = new String(Base64.decode(rowValue));
+ }
- public void renderValueString(String data) {
- fValueString = "\"" + data + "\"";
+ setValueString(rowValue);
}
- public boolean supportsValueModification() {
+ public boolean setValue(String expression) throws DebugException {
+ setValueString(expression);
+ fireEvent(new DebugEvent(this, DebugEvent.CHANGE, DebugEvent.CONTENT));
return true;
}
- public boolean verifyValue(String expression) {
+ public boolean supportsValueModification() {
return true;
}
-}
+}
\ No newline at end of file