|
@@ -1,7 +1,7 @@
|
|
"""
|
|
"""
|
|
Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
|
|
Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
|
|
|
|
|
|
-Date: Mon Dec 18 13:49:08 2017
|
|
|
|
|
|
+Date: Tue Dec 19 14:25:12 2017
|
|
|
|
|
|
Model author: Yentl Van Tendeloo
|
|
Model author: Yentl Van Tendeloo
|
|
Model name: MvK Server
|
|
Model name: MvK Server
|
|
@@ -19,6 +19,38 @@ import urllib
|
|
import json
|
|
import json
|
|
import sys
|
|
import sys
|
|
|
|
|
|
|
|
+COMPILE_LOCAL = True
|
|
|
|
+if COMPILE_LOCAL:
|
|
|
|
+ sys.path.append("interface/HUTN")
|
|
|
|
+ from hutn_compiler.compiler import main as do_compile
|
|
|
|
+
|
|
|
|
+ def clean_code(code):
|
|
|
|
+ if code == "":
|
|
|
|
+ return code
|
|
|
|
+
|
|
|
|
+ code_fragments = code.split("\n")
|
|
|
|
+ code_fragments = [i.rstrip() for i in code_fragments if i.strip() != ""]
|
|
|
|
+ code_fragments = [i.replace(" ", "\t") for i in code_fragments]
|
|
|
|
+ initial_tabs = min([len(i) - len(i.lstrip("\t")) for i in code_fragments])
|
|
|
|
+ code_fragments = [i[initial_tabs:] for i in code_fragments]
|
|
|
|
+ code_fragments.append("")
|
|
|
|
+ code = "\n".join(code_fragments)
|
|
|
|
+ return code.encode('ascii', 'replace')
|
|
|
|
+
|
|
|
|
+ def compile_model(model):
|
|
|
|
+ temp_file = ".model_%s" % str(uuid.uuid4())
|
|
|
|
+ with open(temp_file, 'w') as f:
|
|
|
|
+ f.write(model)
|
|
|
|
+ compiled = do_compile(temp_file, "interface/HUTN/grammars/modelling.g", "M")
|
|
|
|
+ return ["__LOCAL__"] + compiled
|
|
|
|
+
|
|
|
|
+ def compile_code(code):
|
|
|
|
+ temp_file = ".code_%s" % str(uuid.uuid4())
|
|
|
|
+ with open(temp_file, 'w') as f:
|
|
|
|
+ f.write(code)
|
|
|
|
+ compiled = do_compile(temp_file, "interface/HUTN/grammars/actionlanguage.g", "CS")
|
|
|
|
+ return ["__LOCAL__"] + compiled
|
|
|
|
+
|
|
# package "MvK Server"
|
|
# package "MvK Server"
|
|
|
|
|
|
class Modelverse(RuntimeClassBase):
|
|
class Modelverse(RuntimeClassBase):
|
|
@@ -48,6 +80,7 @@ class Modelverse(RuntimeClassBase):
|
|
self.registered_metamodel = {}
|
|
self.registered_metamodel = {}
|
|
self.inputs = {}
|
|
self.inputs = {}
|
|
self.finish_output_thread = False
|
|
self.finish_output_thread = False
|
|
|
|
+ self.input_log = []
|
|
|
|
|
|
def user_defined_destructor(self):
|
|
def user_defined_destructor(self):
|
|
pass
|
|
pass
|
|
@@ -1883,7 +1916,7 @@ class Modelverse(RuntimeClassBase):
|
|
self.raiseInternalEvent(Event("request", None, [['model_list', self.parameters[0]]]))
|
|
self.raiseInternalEvent(Event("request", None, [['model_list', self.parameters[0]]]))
|
|
|
|
|
|
def _initialized_behaviour_operations_model_add_send_metadata_enter(self):
|
|
def _initialized_behaviour_operations_model_add_send_metadata_enter(self):
|
|
- self.raiseInternalEvent(Event("request", None, [['model_add', self.parameters[1], self.parameters[0], self.parameters[2]]]))
|
|
|
|
|
|
+ self.raiseInternalEvent(Event("request", None, [['model_add', self.parameters[1], self.parameters[0]] + ([self.parameters[2]] if not COMPILE_LOCAL else compile_model(self.parameters[2]))]))
|
|
|
|
|
|
def _initialized_behaviour_operations_model_delete_enter(self):
|
|
def _initialized_behaviour_operations_model_delete_enter(self):
|
|
self.raiseInternalEvent(Event("request", None, [['model_delete', self.parameters[0]]]))
|
|
self.raiseInternalEvent(Event("request", None, [['model_delete', self.parameters[0]]]))
|
|
@@ -1898,12 +1931,14 @@ class Modelverse(RuntimeClassBase):
|
|
self.raiseInternalEvent(Event("request", None, [['model_overwrite', self.parameters[0], self.registered_metamodel[self.parameters[0]]]]))
|
|
self.raiseInternalEvent(Event("request", None, [['model_overwrite', self.parameters[0], self.registered_metamodel[self.parameters[0]]]]))
|
|
|
|
|
|
def _initialized_behaviour_operations_model_overwrite_send_model_enter(self):
|
|
def _initialized_behaviour_operations_model_overwrite_send_model_enter(self):
|
|
- self.raiseInternalEvent(Event("request", None, [self.parameters[1]]))
|
|
|
|
|
|
+ self.raiseInternalEvent(Event("request", None, [self.parameters[1] if not COMPILE_LOCAL else compile_model(self.parameters[1])]))
|
|
|
|
|
|
def _initialized_behaviour_operations_disconnect_enter(self):
|
|
def _initialized_behaviour_operations_disconnect_enter(self):
|
|
self.raiseInternalEvent(Event("request", None, ['exit']))
|
|
self.raiseInternalEvent(Event("request", None, ['exit']))
|
|
|
|
|
|
def _initialized_behaviour_operations_user_logout_enter(self):
|
|
def _initialized_behaviour_operations_user_logout_enter(self):
|
|
|
|
+ import json
|
|
|
|
+ print(json.dumps(self.input_log))
|
|
self.raiseInternalEvent(Event("request", None, ['user_logout']))
|
|
self.raiseInternalEvent(Event("request", None, ['user_logout']))
|
|
|
|
|
|
def _initialized_behaviour_operations_user_delete_enter(self):
|
|
def _initialized_behaviour_operations_user_delete_enter(self):
|
|
@@ -2272,6 +2307,7 @@ class Modelverse(RuntimeClassBase):
|
|
def _initialized_http_mapper_init_0_exec(self, parameters):
|
|
def _initialized_http_mapper_init_0_exec(self, parameters):
|
|
value = parameters[0]
|
|
value = parameters[0]
|
|
self.big_step.outputEventOM(Event("narrow_cast", None, [self, self.http_clients[0], Event("HTTP_input", None, [urllib.urlencode({"op": "set_input", "data": json.dumps(value), "taskname": self.taskname}), None])]))
|
|
self.big_step.outputEventOM(Event("narrow_cast", None, [self, self.http_clients[0], Event("HTTP_input", None, [urllib.urlencode({"op": "set_input", "data": json.dumps(value), "taskname": self.taskname}), None])]))
|
|
|
|
+ self.input_log.append(value)
|
|
|
|
|
|
def _initialized_http_mapper_init_0_guard(self, parameters):
|
|
def _initialized_http_mapper_init_0_guard(self, parameters):
|
|
value = parameters[0]
|
|
value = parameters[0]
|
|
@@ -2280,6 +2316,7 @@ class Modelverse(RuntimeClassBase):
|
|
def _initialized_http_mapper_init_1_exec(self, parameters):
|
|
def _initialized_http_mapper_init_1_exec(self, parameters):
|
|
value = parameters[0]
|
|
value = parameters[0]
|
|
self.big_step.outputEventOM(Event("narrow_cast", None, [self, self.http_clients[0], Event("HTTP_input", None, [urllib.urlencode({"op": "set_input", "value": json.dumps(value), "taskname": self.taskname}), None])]))
|
|
self.big_step.outputEventOM(Event("narrow_cast", None, [self, self.http_clients[0], Event("HTTP_input", None, [urllib.urlencode({"op": "set_input", "value": json.dumps(value), "taskname": self.taskname}), None])]))
|
|
|
|
+ self.input_log.append([value])
|
|
|
|
|
|
def _initialized_http_mapper_init_1_guard(self, parameters):
|
|
def _initialized_http_mapper_init_1_guard(self, parameters):
|
|
value = parameters[0]
|
|
value = parameters[0]
|
|
@@ -2510,6 +2547,7 @@ class Modelverse(RuntimeClassBase):
|
|
|
|
|
|
def _initialized_behaviour_operations_store_on_scripted_transformation_add_send_metadata_0_exec(self, parameters):
|
|
def _initialized_behaviour_operations_store_on_scripted_transformation_add_send_metadata_0_exec(self, parameters):
|
|
model = self.responses.pop(0).split(": ", 1)[1]
|
|
model = self.responses.pop(0).split(": ", 1)[1]
|
|
|
|
+ self.input_log.append(None)
|
|
self.raiseInternalEvent(Event("result", None, [model]))
|
|
self.raiseInternalEvent(Event("result", None, [model]))
|
|
|
|
|
|
def _initialized_behaviour_operations_store_on_scripted_transformation_add_send_metadata_0_guard(self, parameters):
|
|
def _initialized_behaviour_operations_store_on_scripted_transformation_add_send_metadata_0_guard(self, parameters):
|
|
@@ -2517,7 +2555,7 @@ class Modelverse(RuntimeClassBase):
|
|
|
|
|
|
def _initialized_behaviour_operations_store_on_scripted_transformation_add_send_metadata_1_exec(self, parameters):
|
|
def _initialized_behaviour_operations_store_on_scripted_transformation_add_send_metadata_1_exec(self, parameters):
|
|
self.raiseInternalEvent(Event("result", None, [None]))
|
|
self.raiseInternalEvent(Event("result", None, [None]))
|
|
- self.raiseInternalEvent(Event("request", None, [self.parameters[3]]))
|
|
|
|
|
|
+ self.raiseInternalEvent(Event("request", None, [self.parameters[3] if not COMPILE_LOCAL else compile_code(self.parameters[3])]))
|
|
|
|
|
|
def _initialized_behaviour_operations_store_on_scripted_transformation_add_send_metadata_1_guard(self, parameters):
|
|
def _initialized_behaviour_operations_store_on_scripted_transformation_add_send_metadata_1_guard(self, parameters):
|
|
return self.expect_response('Waiting for code constructors...')
|
|
return self.expect_response('Waiting for code constructors...')
|
|
@@ -2530,13 +2568,13 @@ class Modelverse(RuntimeClassBase):
|
|
return None in self.inputs and self.inputs[None]
|
|
return None in self.inputs and self.inputs[None]
|
|
|
|
|
|
def _initialized_behaviour_operations_store_on_scripted_transformation_add_upload_changes_0_exec(self, parameters):
|
|
def _initialized_behaviour_operations_store_on_scripted_transformation_add_upload_changes_0_exec(self, parameters):
|
|
- self.raiseInternalEvent(Event("request", None, [self.parameters[3]]))
|
|
|
|
|
|
+ self.raiseInternalEvent(Event("request", None, [self.parameters[3] if not COMPILE_LOCAL else compile_code(self.parameters[3])]))
|
|
|
|
|
|
def _initialized_behaviour_operations_store_on_scripted_transformation_add_upload_changes_0_guard(self, parameters):
|
|
def _initialized_behaviour_operations_store_on_scripted_transformation_add_upload_changes_0_guard(self, parameters):
|
|
return self.expect_response('Waiting for code constructors...')
|
|
return self.expect_response('Waiting for code constructors...')
|
|
|
|
|
|
def _initialized_behaviour_operations_store_on_scripted_transformation_add_upload_changes_1_exec(self, parameters):
|
|
def _initialized_behaviour_operations_store_on_scripted_transformation_add_upload_changes_1_exec(self, parameters):
|
|
- self.raiseInternalEvent(Event("request", None, [self.parameters[3]]))
|
|
|
|
|
|
+ self.raiseInternalEvent(Event("request", None, [self.parameters[3] if not COMPILE_LOCAL else compile_model(self.parameters[3])]))
|
|
|
|
|
|
def _initialized_behaviour_operations_store_on_scripted_transformation_add_upload_changes_1_guard(self, parameters):
|
|
def _initialized_behaviour_operations_store_on_scripted_transformation_add_upload_changes_1_guard(self, parameters):
|
|
return self.expect_response('Waiting for model constructors...')
|
|
return self.expect_response('Waiting for model constructors...')
|
|
@@ -2901,6 +2939,7 @@ class Modelverse(RuntimeClassBase):
|
|
|
|
|
|
def _initialized_behaviour_wait_for_action_activity_OP_forwarding_1_exec(self, parameters):
|
|
def _initialized_behaviour_wait_for_action_activity_OP_forwarding_1_exec(self, parameters):
|
|
self.raiseInternalEvent(Event("result", None, [self.responses.pop(0).split(': ')[1]]))
|
|
self.raiseInternalEvent(Event("result", None, [self.responses.pop(0).split(': ')[1]]))
|
|
|
|
+ self.input_log.append(None)
|
|
|
|
|
|
def _initialized_behaviour_wait_for_action_activity_OP_forwarding_1_guard(self, parameters):
|
|
def _initialized_behaviour_wait_for_action_activity_OP_forwarding_1_guard(self, parameters):
|
|
return self.expect_response_partial('Please edit this model before sending next input: ', pop=False)
|
|
return self.expect_response_partial('Please edit this model before sending next input: ', pop=False)
|