[comment encoding = UTF-8 /] [module toLTL('http://simplepdl')] [template public processToLTL(aProcess : Process)] [comment @main/] [file (aProcess.name + '.ltl', false, 'UTF-8')] [let wds : OrderedSet(WorkDefinition) = aProcess.getWDs() ] [for (wds) before ('[] <> ((') separator (') /\\ (') after ('));')]['(' + self.name + '_idle /\\ -' + self.name + '_running /\\ -' + self.name + '_finished) \\/ (-' + self.name + '_idle /\\ ' + self.name + '_running /\\ -' + self.name + '_finished) \\/ (-' + self.name + '_idle /\\ -' + self.name + '_running /\\ ' + self.name + '_finished)'/][/for] [for (wds) before ('[] <> ((') separator (') /\\ (') after ('));')][self.name + '_finished => [](-' + self.name + '_running' + ' /\\ -' + self.name + '_idle /\\ ' + self.name + '_started)'/][/for] [/let] [/file] [/template] [query public getWDs(p: Process) : OrderedSet(WorkDefinition) = p.processElements->select( e | e.oclIsTypeOf(WorkDefinition) ) ->collect( e | e.oclAsType(WorkDefinition) ) ->asOrderedSet() /]