/[gzz]/gzz/metacode/uml.py
ViewVC logotype

Diff of /gzz/metacode/uml.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.17 by tjl, Thu Aug 29 09:18:59 2002 UTC revision 1.18 by tjl, Thu Aug 29 11:04:17 2002 UTC
# Line 147  class mpsequence: Line 147  class mpsequence:
147              """ % self.__dict__;              """ % self.__dict__;
148              return s + " ".join([e.drawCode_draw() for e in self.list])              return s + " ".join([e.drawCode_draw() for e in self.list])
149    
150        class delete(call):
151            def drawCode_measure(self):
152                s = mpsequence.call.drawCode_measure(self)
153                self.parent.seqobjsdeletes[self.targetname] = self.yl;
154                return s
155    
156            def drawCode_draw(self):
157                s = mpsequence.call.drawCode_draw(self)
158                return (s +
159                 " sequencedestroy( %(targetx)s, %(yl)s ); "
160                        % self.__dict__)
161      class create(call):      class create(call):
162          def measure(self):          def measure(self):
163              self.yu = self.parent.getVarForY(10,10)              self.yu = self.parent.getVarForY(10,10)
# Line 169  class mpsequence: Line 180  class mpsequence:
180    
181      def __init__(self, var, s, l):      def __init__(self, var, s, l):
182          self.seqobjs = []          self.seqobjs = []
183            self.seqobjsdeletes = {}
184          toks = s.split(" ");          toks = s.split(" ");
185          s = toks[0]          s = toks[0]
186          self.var = var or s          self.var = var or s
# Line 183  class mpsequence: Line 195  class mpsequence:
195              s = toks[0]              s = toks[0]
196              if s == "call":              if s == "call":
197                  l.append(self.call(self,  sourceName, toks, el[1:]))                  l.append(self.call(self,  sourceName, toks, el[1:]))
198                elif s == "delete":
199                    l.append(self.delete(self,  sourceName, toks, el[1:]))
200              elif s == "create":              elif s == "create":
201                  l.append(self.create(self,  sourceName, toks, el[1:]))                  l.append(self.create(self,  sourceName, toks, el[1:]))
202              elif s == "return" or s == "delete":              elif s == "return":
203                  pass                  pass
204              else:              else:
205                  assert 0, "Must have call or return, not '"+s+"'"                  assert 0, "Must have call or return, not '"+s+"'"
# Line 194  class mpsequence: Line 208  class mpsequence:
208          return self.repl(          return self.repl(
209              " ".join([e.setupCode() for e in self.list])              " ".join([e.setupCode() for e in self.list])
210              )              )
211        def lifeend(self, obj):
212            return self.seqobjsdeletes.get(obj, self.yvar)
213      def drawCode(self):      def drawCode(self):
214          self.yvar = randomVar()          self.yvar = randomVar()
215          self.ycode = "numeric %(yvar)s; %(yvar)s = -50;" % self.__dict__;          self.ycode = "numeric %(yvar)s; %(yvar)s = -50;" % self.__dict__;
# Line 202  class mpsequence: Line 218  class mpsequence:
218          m = self.ycode          m = self.ycode
219          m += " ".join([e.drawCode_measure() for e in self.list])          m += " ".join([e.drawCode_measure() for e in self.list])
220          m += " ".join([          m += " ".join([
221              "sequencedrawlifeline(%s, %s);" % (so, self.yvar)              "sequencedrawlifeline(%s, %s);" % (so, self.lifeend(so))
222                  for so in self.seqobjs                  for so in self.seqobjs
223          ])          ])
224          m += " ".join([e.drawCode_draw() for e in self.list])          m += " ".join([e.drawCode_draw() for e in self.list])

Legend:
Removed from v.1.17  
changed lines
  Added in v.1.18

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26