Separate XDebugResponse from ResponseListner.
[phpeclipse.git] / net.sourceforge.phpeclipse.xdebug.core / src / net / sourceforge / phpeclipse / xdebug / core / xdebug / ResponseListener.java
index d1ea8f8..f79af8f 100644 (file)
@@ -11,6 +11,7 @@ import javax.xml.parsers.ParserConfigurationException;
 import net.sourceforge.phpeclipse.xdebug.core.IPHPDebugEvent;
 import net.sourceforge.phpeclipse.xdebug.core.PHPDebugUtils;
 import net.sourceforge.phpeclipse.xdebug.core.XDebugCorePlugin;
+import net.sourceforge.phpeclipse.xdebug.core.xdebug.XDebugResponse;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
@@ -29,191 +30,6 @@ import org.w3c.dom.CDATASection;
  */
 
 public class ResponseListener extends Job {
-       public class XDebugResponse {
-               final public static String TYPE_INIT = "init";
-               
-               final public static String TYPE_RESPONSE = "response";
-               
-               final public static String TYPE_STREAM = "stream";
-
-               private Node parentNode;
-               private int fTransactionID = -1;
-               private String fCommand = "";
-               private String fStatus;
-               private String fReason;
-               private String fName;
-               private boolean  fError;
-       
-               private String fValue;
-               private String fType;
-               private String fAddress;
-               private String fIdeKey;
-                       
-               public XDebugResponse(String XMLInput) {
-                       fTransactionID = -1;
-                       fCommand = "";
-                       fStatus = "";
-                       fReason = "";                   
-                       fName= "";
-                       setParentNode(XMLInput);
-               }
-       
-               /*public*/private synchronized void setParentNode(String xmlInput) {
-                       DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
-                       DocumentBuilder builder = null;
-                       Document doc = null;
-                       
-                       try {
-                               builder = factory.newDocumentBuilder();
-                       } catch (ParserConfigurationException e) {
-                               e.printStackTrace();
-                       }
-                       ByteArrayInputStream InputXMLStream = new ByteArrayInputStream(xmlInput.getBytes());
-                       try {
-                               doc = builder.parse(InputXMLStream);
-                       } catch (SAXException e) {
-                               e.printStackTrace();
-                       } catch (IOException e) {
-                               e.printStackTrace();
-                       }
-       
-                       parentNode = doc.getFirstChild();
-                       
-                       String responseType = parentNode.getNodeName();
-                       if (responseType == TYPE_INIT) {
-                               fName = TYPE_INIT;
-                               parseInit(parentNode);
-                       } else if (responseType == TYPE_RESPONSE) {
-                               fName = TYPE_RESPONSE;
-                               parseResponse(parentNode);
-                       } else if (responseType == TYPE_STREAM) {
-                               fName = TYPE_STREAM;
-                               parseStream();
-                       } else {
-                               fName = null;
-                       }
-               }
-               
-               private void parseInit(Node parentNode) {
-                       fIdeKey = getAttributeValue("idekey");
-                       
-                       /*int startIdx = initString.indexOf("idekey=\"");
-                       if (startIdx == -1)
-                               return;
-                       startIdx += 8;
-                       int endIdx=initString.indexOf('"',startIdx);
-                       if (endIdx==-1)
-                               return;
-                       fSessionID = initString.substring(startIdx,endIdx);*/
-               }
-               
-               private void parseResponse(Node parentNode) {
-                       String idStr = getAttributeValue("transaction_id");
-                       if (!"".equals(idStr))
-                               fTransactionID = Integer.parseInt(idStr);
-                       fCommand = getAttributeValue("command");
-                       if (parentNode.hasChildNodes()) {
-                               Node child = parentNode.getFirstChild();
-                               if (child.getNodeName().equals("error")) {
-                                       int code = Integer.parseInt(PHPDebugUtils.getAttributeValue(child, "code"));
-                                       String text = (child.getFirstChild()).getNodeValue();
-                                       XDebugCorePlugin.log(IStatus.ERROR," ERROR "+code+": "+text);
-                                       fError = true;
-                                       return;
-                               }
-                       }
-                       fError = false;
-                       
-                       fStatus = getAttributeValue("status");
-                       fReason = getAttributeValue("reason");
-       
-                       if( fCommand.compareTo("eval") == 0 ) {
-                               try {
-                                       Node property = parentNode.getFirstChild();
-       
-                                       NamedNodeMap listAttribute = property.getAttributes();
-                                       Node attribute = listAttribute.getNamedItem("type");
-                                       if (attribute !=null) {
-                                               fType = attribute.getNodeValue();
-                                       }
-       
-                                       Node attribute1 = listAttribute.getNamedItem("address");
-                                       if (attribute1 !=null) {
-                                               fAddress = attribute1.getNodeValue();
-                                       }
-                                       
-                                       Node firstChild1 = (Node) property.getFirstChild();
-                                       
-                                       if( firstChild1 != null ) {
-                                               fValue = firstChild1.getNodeValue();
-                                       } else {
-                                               fValue = "";
-                                       }
-                               } catch (Exception e) {
-                                       // TODO: handle exception
-                               }
-                       } else {
-                               try {
-                                       CDATASection firstChild = (CDATASection) parentNode.getFirstChild();
-       
-                                       if( firstChild != null ) {
-                                               fValue = parentNode.getFirstChild().getNodeValue();
-                                       }
-                               } catch (Exception e) {
-                               }
-                       }
-                       
-               }
-               
-               private void parseStream() {
-                       
-               }
-               
-               
-               public String getAttributeValue (String AttributeName) {
-                       String strValue = "";
-                       if (parentNode.hasAttributes()) {
-                               NamedNodeMap listAttribute = parentNode.getAttributes();
-                               Node attribute = listAttribute.getNamedItem(AttributeName);
-                               if (attribute !=null)
-                                       strValue = attribute.getNodeValue();
-                       }
-                       return strValue;
-               }
-               
-               public synchronized Node getParentNode(){
-                       return parentNode;
-               }
-               
-               /*public*/private  synchronized String getCommand() {
-                       return fCommand;
-               }
-               /*public*/private synchronized String getName() {
-                       return fName;
-               }
-               
-               public synchronized String getValue() {
-                       return fValue;
-               }
-       
-               public synchronized String getReason() {
-                       return fReason;
-               }
-       
-               public synchronized String getStatus() {
-                       return fStatus;
-               }
-       
-               public synchronized int getTransactionID() {
-                       return fTransactionID;
-               }
-               
-               public boolean isError() {
-                       return fError;
-               }
-       }
-       
-       
        private XDebugConnection fConnection;
        private ResponseList fResponseList;