E5XML/DebuggerPropertiesHandler.py

changeset 607
d95d60ba16aa
parent 606
cc26d1c27da5
child 608
d8fea1e76975
equal deleted inserted replaced
606:cc26d1c27da5 607:d95d60ba16aa
1 # -*- coding: utf-8 -*-
2
3 # Copyright (c) 2003 - 2010 Detlev Offenbach <detlev@die-offenbachs.de>
4 #
5
6 """
7 Module implementing the handler class for reading an XML project debugger properties file.
8 """
9
10 from .Config import debuggerPropertiesFileFormatVersion
11 from .XMLHandlerBase import XMLHandlerBase
12
13 class DebuggerPropertiesHandler(XMLHandlerBase):
14 """
15 Class implementing a sax handler to read an XML project debugger properties file.
16 """
17 def __init__(self, project):
18 """
19 Constructor
20
21 @param project Reference to the project object to store the
22 information into.
23 """
24 XMLHandlerBase.__init__(self)
25
26 self.startDocumentSpecific = self.startDocumentDebuggerProperties
27
28 self.elements.update({
29 'DebuggerProperties' : (self.startDebuggerProperties, self.defaultEndElement),
30 'Interpreter' : (self.defaultStartElement, self.endInterpreter),
31 'DebugClient' : (self.defaultStartElement, self.endDebugClient),
32 'Environment' : (self.startEnvironment, self.endEnvironment),
33 'RemoteDebugger' : (self.startRemoteDebugger, self.defaultEndElement),
34 'RemoteHost' : (self.defaultStartElement, self.endRemoteHost),
35 'RemoteCommand' : (self.defaultStartElement, self.endRemoteCommand),
36 'PathTranslation' : (self.startPathTranslation, self.defaultEndElement),
37 'RemotePath' : (self.defaultStartElement, self.endRemotePath),
38 'LocalPath' : (self.defaultStartElement, self.endLocalPath),
39 'ConsoleDebugger' : (self.startConsoleDebugger, self.endConsoleDebugger),
40 'Redirect' : (self.startRedirect, self.defaultEndElement),
41 'Noencoding' : (self.startNoencoding, self.defaultEndElement),
42 })
43
44 self.project = project
45
46 def startDocumentDebuggerProperties(self):
47 """
48 Handler called, when the document parsing is started.
49 """
50 self.version = ''
51
52 ###################################################
53 ## below follow the individual handler functions
54 ###################################################
55
56 def endInterpreter(self):
57 """
58 Handler method for the "Interpreter" end tag.
59 """
60 self.project.debugProperties["INTERPRETER"] = self.buffer
61
62 def endDebugClient(self):
63 """
64 Handler method for the "DebugClient" end tag.
65 """
66 self.project.debugProperties["DEBUGCLIENT"] = self.buffer
67
68 def startEnvironment(self, attrs):
69 """
70 Handler method for the "Environment" start tag.
71 """
72 self.buffer = ""
73 self.project.debugProperties["ENVIRONMENTOVERRIDE"] = \
74 int(attrs.get("override", "0"))
75
76 def endEnvironment(self):
77 """
78 Handler method for the "Environment" end tag.
79 """
80 self.project.debugProperties["ENVIRONMENTSTRING"] = \
81 self.unescape(self.buffer)
82
83 def startRemoteDebugger(self, attrs):
84 """
85 Handler method for the "RemoteDebugger" start tag.
86 """
87 self.buffer = ""
88 self.project.debugProperties["REMOTEDEBUGGER"] = \
89 int(attrs.get("on", "0"))
90
91 def endRemoteHost(self):
92 """
93 Handler method for the "RemoteHost" end tag.
94 """
95 self.project.debugProperties["REMOTEHOST"] = self.buffer
96
97 def endRemoteCommand(self):
98 """
99 Handler method for the "RemoteCommand" end tag.
100 """
101 self.project.debugProperties["REMOTECOMMAND"] = \
102 self.unescape(self.buffer)
103
104 def startPathTranslation(self, attrs):
105 """
106 Handler method for the "PathTranslation" start tag.
107 """
108 self.buffer = ""
109 self.project.debugProperties["PATHTRANSLATION"] = \
110 int(attrs.get("on", "0"))
111
112 def endRemotePath(self):
113 """
114 Handler method for the "RemotePath" end tag.
115 """
116 self.project.debugProperties["REMOTEPATH"] = self.buffer
117
118 def endLocalPath(self):
119 """
120 Handler method for the "LocalPath" end tag.
121 """
122 self.project.debugProperties["LOCALPATH"] = self.buffer
123
124 def startConsoleDebugger(self, attrs):
125 """
126 Handler method for the "ConsoleDebugger" start tag.
127 """
128 self.buffer = ""
129 self.project.debugProperties["CONSOLEDEBUGGER"] = \
130 int(attrs.get("on", "0"))
131
132 def endConsoleDebugger(self):
133 """
134 Handler method for the "ConsoleDebugger" end tag.
135 """
136 self.project.debugProperties["CONSOLECOMMAND"] = \
137 self.unescape(self.buffer)
138
139 def startRedirect(self, attrs):
140 """
141 Handler method for the "Redirect" start tag.
142 """
143 self.project.debugProperties["REDIRECT"] = \
144 int(attrs.get("on", "1"))
145
146 def startNoencoding(self, attrs):
147 """
148 Handler method for the "Noencoding" start tag.
149 """
150 self.project.debugProperties["NOENCODING"] = \
151 int(attrs.get("on", "0"))
152
153 def startDebuggerProperties(self, attrs):
154 """
155 Handler method for the "DebuggerProperties" start tag.
156
157 @param attrs list of tag attributes
158 """
159 self.version = attrs.get('version', debuggerPropertiesFileFormatVersion)
160
161 def getVersion(self):
162 """
163 Public method to retrieve the version of the debugger properties.
164
165 @return String containing the version number.
166 """
167 return self.version

eric ide

mercurial