123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- import sys
- import argparse
- import wrappers.modelverse as mv
- from commons import new_instance_model, new_example_model, all_models
- from sketchUI.main import run_ui
- from evolution import upload_ops
- def upload_graph_MM():
- print("Uploading graph metamodel ...")
- try:
- mv.model_delete("formalisms/graphMM")
- except mv.UnknownLocation:
- pass
- content = open("models/sketching/graphMM.mvc").read()
- mv.model_add("formalisms/graphMM", "formalisms/SimpleClassDiagrams", content)
- def upload_consyn_MM():
- print("Uploading Concrete Syntax metamodel ...")
- try:
- mv.model_delete("formalisms/consynMM")
- except mv.UnknownLocation:
- pass
- content = open("models/sketching/ConsynMM.mvc").read()
- mv.model_add("formalisms/consynMM", "formalisms/SimpleClassDiagrams", content)
- def upload_consyn():
- print("Uploading concrete syntax models ...")
- try:
- mv.model_delete("models/consyn")
- except mv.UnknownLocation:
- pass
- content = open("models/sketching/cs_router.mvc").read()
- mv.model_add("models/consyn/Router", "formalisms/consynMM", content)
- mv.verify("models/consyn/Router", "formalisms/consynMM")
- def upload_example_models():
- print("Uploading example models ...")
- # clear all example models
- try:
- mv.model_delete("models/example")
- except mv.UnknownLocation:
- # folder does not exist, ignore
- pass
- content = open("models/sketching/example_model_1.mvc").read()
- mv.model_add("models/example/ex1", "formalisms/graphMM", content)
- mv.verify("models/example/ex1", "formalisms/graphMM")
- content = open("models/sketching/example_model_2.mvc").read()
- mv.model_add("models/example/ex2", "formalisms/graphMM", content)
- mv.verify("models/example/ex2", "formalisms/graphMM")
- def upload_instance_model():
- print("Uploading instance model ...")
- # clear all example models
- try:
- mv.model_delete("models/instance")
- except mv.UnknownLocation:
- # folder does not exist, ignore
- pass
- content = open("models/sketching/instance_model.mvc").read()
- mv.model_add("models/instance/im1", "formalisms/graphMM", content)
- mv.verify("models/instance/im1", "formalisms/graphMM")
- if __name__ == "__main__":
- parser = argparse.ArgumentParser()
- parser.add_argument("-u", action="store_true", default=False, help="Upload metamodels to Modelverse at startup")
- parser.add_argument("-im", action="store_true", default=False, help="Instance modeling")
- parser.add_argument("-exm", action="store_true", default=False, help="Example modeling")
- parser.add_argument("-m", help="Model to open. Omit this argument to create a new, empty model.")
- parser.add_argument("-c", nargs=2, help="Copy model from one location to another. Useful to resuse example models"
- "as instance models")
- args = parser.parse_args()
- mv.init()
- mv.login("admin", "admin")
- # load modelverse with necessary models
- if args.u:
- upload_graph_MM()
- upload_consyn_MM()
- upload_consyn()
- upload_example_models()
- upload_instance_model()
- print("Uploading evolution transformations ...")
- upload_ops.upload_evolution_ops()
- # copy model from src to dest
- if args.c:
- if not len(args.c) == 2:
- print("Please specify source and target location for copy")
- sys.exit(-1)
- src = args.c[0]
- dest = args.c[1]
- print("Copying model {} to {}".format(src, dest))
- mv.model_move(src, dest)
- sys.exit(0)
- # determine modeling mode
- mode = None
- if args.im and args.exm or (not args.im and not args.exm):
- print("Choose either im or exm")
- sys.exit(0)
- if args.im:
- mode = "IM"
- else:
- mode = "EXM"
- # open existing model?
- if args.m:
- model = args.m
- print("Checking if model {} exists ...".format(model))
- if model not in all_models():
- print("No such model: {}".format(model))
- sys.exit(-1)
- else:
- # no model to open, create an empty one
- if mode == "IM":
- model = new_instance_model()
- else:
- model = new_example_model()
- print("Starting UI ...")
- run_ui(mode, model)
- print("verify ... ")
- print(mv.verify(model, "formalisms/graphMM"))
|