*/
package net.sourceforge.phpeclipse.xdebug.php.model;
-import java.net.URI;
-import java.net.URISyntaxException;
-
import net.sourceforge.phpeclipse.xdebug.core.PHPDebugUtils;
import net.sourceforge.phpeclipse.xdebug.core.DebugConnection.DebugResponse;
/**
* @author Axel
- *
- * TODO To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Style - Code Templates
+ *
+ * TODO To change the template for this generated type comment go to Window -
+ * Preferences - Java - Code Style - Code Templates
*/
-public class XDebugStackFrame extends XDebugElement implements IStackFrame {
-
+public class XDebugStackFrame extends XDebugElement implements IStackFrame {
+
private XDebugThread fThread;
-// private String fName;
+
+ // private String fName;
private int fLineNo;
+
private String fFileName;
+
private int fId;
+
private IVariable[] fVariables;
+
private String fLevel;
+
private String fType;
+
private String fWhere;
-
+
/**
- * Constructs a stack frame in the given thread with the given
- * frame data.
+ * Constructs a stack frame in the given thread with the given frame data.
*
* @param thread
- * @param data frame data
- * @param id stack frame id (0 is the bottom of the stack)
+ * @param data
+ * frame data
+ * @param id
+ * stack frame id (0 is the bottom of the stack)
*/
public XDebugStackFrame(XDebugThread thread, Node stackNode, int id) {
super((XDebugTarget) thread.getDebugTarget());
fThread = thread;
init(stackNode);
}
-
+
/**
* Initializes this frame based on its data
*
* @param data
*/
private void init(Node stackNode) {
-
- fLevel=PHPDebugUtils.getAttributeValue(stackNode,"level");
- fType=PHPDebugUtils.getAttributeValue(stackNode,"type");
- String fileName=PHPDebugUtils.unescapeString(PHPDebugUtils.getAttributeValue(stackNode,"filename"));
- String lineNo=PHPDebugUtils.getAttributeValue(stackNode,"lineno");
-
- if (lineNo!="")
- fLineNo= Integer.parseInt(lineNo);
-
- fWhere=PHPDebugUtils.getAttributeValue(stackNode,"where");
-
+
+ fLevel = PHPDebugUtils.getAttributeValue(stackNode, "level");
+ fType = PHPDebugUtils.getAttributeValue(stackNode, "type");
+ String fileName = PHPDebugUtils.unescapeString(PHPDebugUtils
+ .getAttributeValue(stackNode, "filename"));
+ String lineNo = PHPDebugUtils.getAttributeValue(stackNode, "lineno");
+
+ if (lineNo != "")
+ fLineNo = Integer.parseInt(lineNo);
+
+ fWhere = PHPDebugUtils.getAttributeValue(stackNode, "where");
+
fFileName = (new Path(fileName)).lastSegment();
- int id=-1;
+ int id = -1;
try {
- id=((XDebugTarget)getDebugTarget()).sendRequest("context_get","-d "+fLevel);
+ id = ((XDebugTarget) getDebugTarget()).sendRequest("context_get",
+ "-d " + fLevel);
} catch (DebugException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
- DebugResponse response=((XDebugTarget)getDebugTarget()).getResponse(id);
+ DebugResponse response = ((XDebugTarget) getDebugTarget())
+ .getResponse(id);
Node responseNode = response.getParentNode();
NodeList property = responseNode.getChildNodes();
fVariables = new IVariable[property.getLength()];
fVariables[i] = new XDebugVariable(this, propertyNode);
}
-// int numVars = strings.length - 3;
-// fVariables = new IVariable[numVars];
-// for (int i = 0; i < numVars; i++) {
-// fVariables[i] = new XDebugVariable(this, strings[i + 3]);
-// }
+ // int numVars = strings.length - 3;
+ // fVariables = new IVariable[numVars];
+ // for (int i = 0; i < numVars; i++) {
+ // fVariables[i] = new XDebugVariable(this, strings[i + 3]);
+ // }
}
-
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.debug.core.model.IStackFrame#getThread()
*/
public IThread getThread() {
return fThread;
}
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.debug.core.model.IStackFrame#getVariables()
*/
public IVariable[] getVariables() throws DebugException {
return fVariables;
}
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.debug.core.model.IStackFrame#hasVariables()
*/
public boolean hasVariables() throws DebugException {
return fVariables.length > 0;
}
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.debug.core.model.IStackFrame#getLineNumber()
*/
public int getLineNumber() throws DebugException {
return fLineNo;
}
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.debug.core.model.IStackFrame#getCharStart()
*/
public int getCharStart() throws DebugException {
return -1;
}
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.debug.core.model.IStackFrame#getCharEnd()
*/
public int getCharEnd() throws DebugException {
return -1;
}
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.debug.core.model.IStackFrame#getName()
*/
public String getName() throws DebugException {
- return fFileName+"::"+fWhere+ " : lineno "+ fLineNo;
+ return fFileName + "::" + fWhere + " : lineno " + fLineNo;
}
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.debug.core.model.IStackFrame#getRegisterGroups()
*/
public IRegisterGroup[] getRegisterGroups() throws DebugException {
return null;
}
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.debug.core.model.IStackFrame#hasRegisterGroups()
*/
public boolean hasRegisterGroups() throws DebugException {
return false;
}
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.debug.core.model.IStep#canStepInto()
*/
public boolean canStepInto() {
return getThread().canStepInto();
}
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.debug.core.model.IStep#canStepOver()
*/
public boolean canStepOver() {
return getThread().canStepOver();
}
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.debug.core.model.IStep#canStepReturn()
*/
public boolean canStepReturn() {
return getThread().canStepReturn();
}
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.debug.core.model.IStep#isStepping()
*/
public boolean isStepping() {
return getThread().isStepping();
}
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.debug.core.model.IStep#stepInto()
*/
public void stepInto() throws DebugException {
getThread().stepInto();
}
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.debug.core.model.IStep#stepOver()
*/
public void stepOver() throws DebugException {
getThread().stepOver();
}
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.debug.core.model.IStep#stepReturn()
*/
public void stepReturn() throws DebugException {
getThread().stepReturn();
}
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.debug.core.model.ISuspendResume#canResume()
*/
public boolean canResume() {
return getThread().canResume();
}
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.debug.core.model.ISuspendResume#canSuspend()
*/
public boolean canSuspend() {
return getThread().canSuspend();
}
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.debug.core.model.ISuspendResume#isSuspended()
*/
public boolean isSuspended() {
return getThread().isSuspended();
}
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.debug.core.model.ISuspendResume#resume()
*/
public void resume() throws DebugException {
getThread().resume();
}
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.debug.core.model.ISuspendResume#suspend()
*/
public void suspend() throws DebugException {
getThread().suspend();
}
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.debug.core.model.ITerminate#canTerminate()
*/
public boolean canTerminate() {
return getThread().canTerminate();
}
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.debug.core.model.ITerminate#isTerminated()
*/
public boolean isTerminated() {
return getThread().isTerminated();
}
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.debug.core.model.ITerminate#terminate()
*/
public void terminate() throws DebugException {
getThread().terminate();
}
-
+
/**
- * Returns the name of the source file this stack frame is associated
- * with.
+ * Returns the name of the source file this stack frame is associated with.
*
- * @return the name of the source file this stack frame is associated
- * with
+ * @return the name of the source file this stack frame is associated with
*/
public String getSourceName() {
return fFileName;
}
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see java.lang.Object#equals(java.lang.Object)
*/
public boolean equals(Object obj) {
if (obj instanceof XDebugStackFrame) {
- XDebugStackFrame sf = (XDebugStackFrame)obj;
+ XDebugStackFrame sf = (XDebugStackFrame) obj;
try {
- return sf.getSourceName().equals(getSourceName()) &&
- sf.getLineNumber() == getLineNumber() &&
- sf.fId == fId;
+ return sf.getSourceName().equals(getSourceName())
+ && sf.getLineNumber() == getLineNumber()
+ && sf.fId == fId;
} catch (DebugException e) {
}
}
return false;
}
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see java.lang.Object#hashCode()
*/
public int hashCode() {
return getSourceName().hashCode() + fId;
}
-
+
/**
* Returns this stack frame's unique identifier within its thread
*