E4XML/DebuggerPropertiesHandler.py

changeset 0
de9c2efb9d02
child 12
1d8dd9706f46
diff -r 000000000000 -r de9c2efb9d02 E4XML/DebuggerPropertiesHandler.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/E4XML/DebuggerPropertiesHandler.py	Mon Dec 28 16:03:33 2009 +0000
@@ -0,0 +1,172 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2003 - 2009 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing the handler class for reading an XML project debugger properties file.
+"""
+
+from Config import debuggerPropertiesFileFormatVersion
+from XMLHandlerBase import XMLHandlerBase
+
+class DebuggerPropertiesHandler(XMLHandlerBase):
+    """
+    Class implementing a sax handler to read an XML project debugger properties file.
+    """
+    def __init__(self, project):
+        """
+        Constructor
+        
+        @param project Reference to the project object to store the
+                information into.
+        """
+        XMLHandlerBase.__init__(self)
+        
+        self.startDocumentSpecific = self.startDocumentDebuggerProperties
+        
+        self.elements.update({
+            'DebuggerProperties' : (self.startDebuggerProperties, self.defaultEndElement),
+            'Interpreter' : (self.defaultStartElement, self.endInterpreter),
+            'DebugClient' : (self.defaultStartElement, self.endDebugClient),
+            'Environment' : (self.startEnvironment, self.endEnvironment),
+            'RemoteDebugger' : (self.startRemoteDebugger, self.defaultEndElement),
+            'RemoteHost' : (self.defaultStartElement, self.endRemoteHost),
+            'RemoteCommand' : (self.defaultStartElement, self.endRemoteCommand),
+            'PathTranslation' : (self.startPathTranslation, self.defaultEndElement),
+            'RemotePath' : (self.defaultStartElement, self.endRemotePath),
+            'LocalPath' : (self.defaultStartElement, self.endLocalPath),
+            'ConsoleDebugger' : (self.startConsoleDebugger, self.endConsoleDebugger),
+            'Redirect' : (self.startRedirect, self.defaultEndElement),
+            'Noencoding' : (self.startNoencoding, self.defaultEndElement),
+        })
+    
+        self.project = project
+        
+    def startDocumentDebuggerProperties(self):
+        """
+        Handler called, when the document parsing is started.
+        """
+        self.version = ''
+        
+    ###################################################
+    ## below follow the individual handler functions
+    ###################################################
+    
+    def endInterpreter(self):
+        """
+        Handler method for the "Interpreter" end tag.
+        """
+        self.project.debugProperties["INTERPRETER"] = \
+            self.utf8_to_code(self.buffer)
+        
+    def endDebugClient(self):
+        """
+        Handler method for the "DebugClient" end tag.
+        """
+        self.project.debugProperties["DEBUGCLIENT"] = \
+            self.utf8_to_code(self.buffer)
+        
+    def startEnvironment(self, attrs):
+        """
+        Handler method for the "Environment" start tag.
+        """
+        self.buffer = ""
+        self.project.debugProperties["ENVIRONMENTOVERRIDE"] = \
+            int(attrs.get("override", "0"))
+        
+    def endEnvironment(self):
+        """
+        Handler method for the "Environment" end tag.
+        """
+        self.project.debugProperties["ENVIRONMENTSTRING"] = \
+            self.unescape(self.utf8_to_code(self.buffer))
+        
+    def startRemoteDebugger(self, attrs):
+        """
+        Handler method for the "RemoteDebugger" start tag.
+        """
+        self.buffer = ""
+        self.project.debugProperties["REMOTEDEBUGGER"] = \
+            int(attrs.get("on", "0"))
+        
+    def endRemoteHost(self):
+        """
+        Handler method for the "RemoteHost" end tag.
+        """
+        self.project.debugProperties["REMOTEHOST"] = \
+            self.utf8_to_code(self.buffer)
+        
+    def endRemoteCommand(self):
+        """
+        Handler method for the "RemoteCommand" end tag.
+        """
+        self.project.debugProperties["REMOTECOMMAND"] = \
+            self.unescape(self.utf8_to_code(self.buffer))
+        
+    def startPathTranslation(self, attrs):
+        """
+        Handler method for the "PathTranslation" start tag.
+        """
+        self.buffer = ""
+        self.project.debugProperties["PATHTRANSLATION"] = \
+            int(attrs.get("on", "0"))
+        
+    def endRemotePath(self):
+        """
+        Handler method for the "RemotePath" end tag.
+        """
+        self.project.debugProperties["REMOTEPATH"] = \
+            self.utf8_to_code(self.buffer)
+        
+    def endLocalPath(self):
+        """
+        Handler method for the "LocalPath" end tag.
+        """
+        self.project.debugProperties["LOCALPATH"] = \
+            self.utf8_to_code(self.buffer)
+        
+    def startConsoleDebugger(self, attrs):
+        """
+        Handler method for the "ConsoleDebugger" start tag.
+        """
+        self.buffer = ""
+        self.project.debugProperties["CONSOLEDEBUGGER"] = \
+            int(attrs.get("on", "0"))
+        
+    def endConsoleDebugger(self):
+        """
+        Handler method for the "ConsoleDebugger" end tag.
+        """
+        self.project.debugProperties["CONSOLECOMMAND"] = \
+            self.unescape(self.utf8_to_code(self.buffer))
+        
+    def startRedirect(self, attrs):
+        """
+        Handler method for the "Redirect" start tag.
+        """
+        self.project.debugProperties["REDIRECT"] = \
+            int(attrs.get("on", "1"))
+        
+    def startNoencoding(self, attrs):
+        """
+        Handler method for the "Noencoding" start tag.
+        """
+        self.project.debugProperties["NOENCODING"] = \
+            int(attrs.get("on", "0"))
+        
+    def startDebuggerProperties(self, attrs):
+        """
+        Handler method for the "DebuggerProperties" start tag.
+        
+        @param attrs list of tag attributes
+        """
+        self.version = attrs.get('version', debuggerPropertiesFileFormatVersion)
+        
+    def getVersion(self):
+        """
+        Public method to retrieve the version of the debugger properties.
+        
+        @return String containing the version number.
+        """
+        return self.version

eric ide

mercurial