diff --git a/examples/conformance/woods.py b/examples/conformance/woods.py index 591eb91..7475ac9 100644 --- a/examples/conformance/woods.py +++ b/examples/conformance/woods.py @@ -198,3 +198,7 @@ if yes_no("Print PlantUML?"): print("==================================") print(make_url(uml)) print("==================================") + print("Go to either:") + print(" ▸ https://www.plantuml.com/plantuml/uml") + print(" ▸ https://mstro.duckdns.org/plantuml/uml") + print("and paste the above string.") diff --git a/tutorial/03_api.py b/tutorial/03_api.py deleted file mode 100644 index f30ce6d..0000000 --- a/tutorial/03_api.py +++ /dev/null @@ -1,72 +0,0 @@ -# We reuse our (meta-)model from the previous tutorial. For this tutorial, it doesn't really matter what the models look like. - -mm_cs = """ - MyAbstractClass:Class { - abstract = True; - } - - MyConcreteClass:Class - - :Inheritance (MyConcreteClass -> MyAbstractClass) - - Z:Class - - myZ:Association (MyAbstractClass -> Z) { - target_lower_cardinality = 1; - } - -""" - -m_cs = """ - cc:MyConcreteClass - z:Z - :myZ (cc -> z) -""" - - -# We parse everything: - -from state.devstate import DevState -from bootstrap.scd import bootstrap_scd -from util import loader - -state = DevState() -mmm = bootstrap_scd(state) -mm = loader.parse_and_check(state, mm_cs, mmm, "mm") -m = loader.parse_and_check(state, m_cs, mm, "m") - - -# We can query the model via an API called ODAPI (Object Diagram API): - -from api.od import ODAPI - -odapi = ODAPI(state, m, mm) - -ls = odapi.get_all_instances("MyAbstractClass", include_subtypes=True) - -print("result of get_all_instances:") -print(ls) - -# Observing the output above, we see that we got a list of tuples (object_name, UUID). -# We can also modify the model via the same API: - -(cc_name, cc_id) = ls[0] -z2 = odapi.create_object("z2", "Z") -odapi.create_link("lnk", "myZ", cc_id, z2) - -# And we can observe the modified model: - -from concrete_syntax.textual_od.renderer import render_od -from concrete_syntax.common import indent - -print() -print("the modified model:") -print(indent(render_od(state, m, mm, hide_names=False), 2)) - -# BTW, notice that the anonymous link of type 'myZ' from the original model was automatically given a unique name (starting with two underscores). - -# The full ODAPI is documented on page 6 of this PDF: -# http://msdl.uantwerpen.be/people/hv/teaching/MSBDesign/202425/assignments/assignment6.pdf - - -# On to the next tutorial...