Module: Mbpm_process
- Defined in:
- lib/ontomde-java/jpdl/jpdl.rb,
lib/ontomde-java/jpdl/main.rb
Instance Method Summary collapse
-
#bpm_addPingNode! ⇒ Object
pingTest node is a node added to ping the process for testing purposses and deployement test purposes.
-
#bpm_createAndAddSynchronousDecisionNode(name) ⇒ Object
create.
-
#bpm_getOrCreateEndNode ⇒ Object
returns process start node creates one if necessary.
-
#bpm_getOrCreateStartNode ⇒ Object
returns process start node creates one if necessary.
- #bpm_getProcessClass(muml) ⇒ Object
- #bpm_graphGen_dot ⇒ Object
- #bpm_processReturnTypeOrNullReturn ⇒ Object
-
#bpm_qualifiedName ⇒ Object
returns a qualified name for this process (return processName itself because processName is supposed to be a qualifiedName).
- #bpm_transform! ⇒ Object
-
#bpm_writeJPDL ⇒ Object
write element as XML JPDL.
Instance Method Details
#bpm_addPingNode! ⇒ Object
pingTest node is a node added to ping the process for testing purposses and deployement test purposes
138 139 140 141 142 143 144 145 146 147 148 149 |
# File 'lib/ontomde-java/jpdl/main.rb', line 138 def bpm_addPingNode! return unless context[:bpm_addPingNode,true] s=bpm_getOrCreateStartNode e=bpm_getOrCreateEndNode d=bpm_createAndAddSynchronousDecisionNode("_pingMode") t=s.bpm_leavingTransition_one #insert node d between s and first node after s d.bpm_addTransition!("productionMode",t.bpm_destinationNode_one) d.bpm_addTransition!("testMode",e) t.bpm_destinationNode=d end |
#bpm_createAndAddSynchronousDecisionNode(name) ⇒ Object
create
152 153 154 155 156 157 |
# File 'lib/ontomde-java/jpdl/main.rb', line 152 def bpm_createAndAddSynchronousDecisionNode(name) ret=Cbpm_synchronousDecisionNode.new(self.rdf_Repository,"#{self.rdf_uri}_#{name}") ret.bpm_nodeName=name self.bpm_processNode_add(ret) return ret end |
#bpm_getOrCreateEndNode ⇒ Object
returns process start node creates one if necessary
172 173 174 175 176 177 178 179 180 |
# File 'lib/ontomde-java/jpdl/main.rb', line 172 def bpm_getOrCreateEndNode bpm_processNode.each {|n| return n if n.kind_of?(Mbpm_endNode) } ret=Cbpm_startNode.new(self.rdf_Repository,"#{self.rdf_uri}_endNode") ret.bpm_nodeName="endNode" self.bpm_processNode_add(ret) return ret end |
#bpm_getOrCreateStartNode ⇒ Object
returns process start node creates one if necessary
161 162 163 164 165 166 167 168 169 |
# File 'lib/ontomde-java/jpdl/main.rb', line 161 def bpm_getOrCreateStartNode bpm_processNode.each {|n| return n if n.kind_of?(Mbpm_startNode) } ret=Cbpm_startNode.new(self.rdf_Repository,"#{self.rdf_uri}_startNode") ret.bpm_nodeName="startNode" self.bpm_processNode_add(ret) return ret end |
#bpm_getProcessClass(muml) ⇒ Object
71 72 73 74 75 76 77 78 79 80 |
# File 'lib/ontomde-java/jpdl/main.rb', line 71 def bpm_getProcessClass(muml) bpmClass = BPM::BpmClass bpmClass += "<#{self.bpm_processReturnTypeOrNullReturn}>" ret=muml.umlx_getOrCreateClass(bpmClass) ret.java_isGeneric=RDF_TRUE #ret.db_isTransient=RDF_FALSE ret.db_isTransient=RDF_FALSE puts "ProcessClass = #{bpmClass}" return ret end |
#bpm_graphGen_dot ⇒ Object
182 183 184 185 186 187 188 189 190 |
# File 'lib/ontomde-java/jpdl/main.rb', line 182 def bpm_graphGen_dot mtk_writeSession("bpm.dot") { write("digraph {\n") bpm_processNode.each {|n| n.bpm_graphGen_dot } write ("} // end of file\n") } end |
#bpm_processReturnTypeOrNullReturn ⇒ Object
149 150 151 152 153 154 |
# File 'lib/ontomde-java/jpdl/jpdl.rb', line 149 def bpm_processReturnTypeOrNullReturn if self.bpm_processReturnType_one0.nil? return BPM::NullReturn end return self.bpm_processReturnType end |
#bpm_qualifiedName ⇒ Object
returns a qualified name for this process (return processName itself because processName is supposed to be a qualifiedName)
67 68 69 |
# File 'lib/ontomde-java/jpdl/main.rb', line 67 def bpm_qualifiedName return bpm_processName.to_s end |
#bpm_transform! ⇒ Object
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
# File 'lib/ontomde-java/jpdl/main.rb', line 82 def bpm_transform! mrdf=context[:umlModel,self.rdf_Repository] muml=mrdf.umlx_reserved_model j=mrdf.java_getClassWithQualifiedName(bpm_qualifiedName) j=muml.umlx_getOrCreateClass("#{bpm_qualifiedName}",::Muml_Namespace::UMLX_SEARCH_EVERY_MODEL) if j.nil? #TODO Gérer la récupération dans la signature de la méthode du type et la génération de deux méthodes #Evite la génération de l'ID j.extend(Muml_ClassProcess); j.db_isTransient=RDF_FALSE self.bpm_javaProcessJobsClass=j # store direct reference j.umlx_external="false" j.umlx_createAndAddGeneralization( bpm_getProcessClass(muml)) bpm_processNode.each {|n| next if n.kind_of?(Mbpm_passive_Node) if n.kind_of?(Mbpm_source_Node) n.bpm_createEnumerationForTransitions!(j) end #n.bpm_createConnectorForNodeAction! n.bpm_addJavaProcessOperation(j) } m=j.umlx_createAndAddOperation("#{j.rdf_uri}_processDefinition","getProcessDefinition") m.java_annotation_add("@Override") p=m.umlx_createAndAddReturnParameter("#{j.rdf_uri}_ret","return") p.uml_type=j.umlx_dataType_string m.java_code=%{return ""\n#{mtk_stss{bpm_writeJPDL}.gsub(/"/,'\\"').gsub(/^(.*)$/,' +"\1"')};} # external process name m=j.umlx_createAndAddOperation("#{j.rdf_uri}_externalProcessName","getExternalProcessName") p=m.umlx_createAndAddReturnParameter("#{j.rdf_uri}_ret","return") p.uml_type=j.umlx_dataType_string m.java_code=%{return "#{bpm_qualifiedName}";} me=j.umlx_createAndAddOperation("#{j.rdf_uri}_onEnd","xmdaOnEnd") me.java_annotation_add("@Override") p=me.umlx_createAndAddReturnParameter("#{me.rdf_uri}_ret","return") p.uml_type=j.umlx_getOrCreateClass("#{bpm_processReturnTypeOrNullReturn}") me.java_code=%{return null;} # p.uml_type=j.umlx_getOrCreateClass("java.lang.Class") # external process id # moved to base class #p=j.umlx_createAndAddProperty("#{j.rdf_uri}_externalBPMid","BpmExternalId") #m.uml_type=j.umlx_dataType_long end |
#bpm_writeJPDL ⇒ Object
write element as XML JPDL
139 140 141 142 143 144 145 146 147 148 |
# File 'lib/ontomde-java/jpdl/jpdl.rb', line 139 def bpm_writeJPDL mtk_default_context( :bpm_rawJPDL => true) { write(%{<?xml version="1.0" encoding="UTF-8"?>\n}) write(%{<process-definition\n xmlns="urn:jbpm.org:jpdl-3.2"\n name="#{self.bpm_processName}">\n}) bpm_processNode.each {|n| n.bpm_writeJPDL } write(%{</process-definition>\n}) } end |