|
@@ -77,7 +77,10 @@ Element function allOutgoingAssociationInstances(model : Element, source_name :
|
|
|
i = 0
|
|
|
while (i < all_out):
|
|
|
option = reverseKeyLookup(model["model"], read_out(source, i))
|
|
|
- if (is_nominal_instance(model, option, assoc_name)):
|
|
|
+ if (assoc_name != ""):
|
|
|
+ if (is_nominal_instance(model, option, assoc_name)):
|
|
|
+ set_add(result, option)
|
|
|
+ else:
|
|
|
set_add(result, option)
|
|
|
i = i + 1
|
|
|
|
|
@@ -97,7 +100,10 @@ Element function allIncomingAssociationInstances(model : Element, target_name :
|
|
|
i = 0
|
|
|
while (i < all_out):
|
|
|
option = reverseKeyLookup(model["model"], read_in(source, i))
|
|
|
- if (is_nominal_instance(model, option, assoc_name)):
|
|
|
+ if (assoc_name != ""):
|
|
|
+ if (is_nominal_instance(model, option, assoc_name)):
|
|
|
+ set_add(result, option)
|
|
|
+ else:
|
|
|
set_add(result, option)
|
|
|
i = i + 1
|
|
|
|
|
@@ -130,18 +136,18 @@ Element function getAttributeList(model : Element, element : String):
|
|
|
|
|
|
return result!
|
|
|
|
|
|
-Element function getInstantiatableAttributes(model : Element, element : String):
|
|
|
+Element function getInstantiatableAttributes(model : Element, element : String, type : String):
|
|
|
Element all_links
|
|
|
Element result
|
|
|
String link
|
|
|
|
|
|
result = dict_create()
|
|
|
|
|
|
- all_links = allOutgoingAssociationInstances(model, element, "Attribute")
|
|
|
+ all_links = allOutgoingAssociationInstances(model, element, type)
|
|
|
while (set_len(all_links) > 0):
|
|
|
link = set_pop(all_links)
|
|
|
// WARNING: do not change this to dict_add_fast, as this crashes random code...
|
|
|
- dict_add(result, read_attribute(model, link, "name"), read_type(model, readAssociationDestination(model, link)))
|
|
|
+ dict_add(result, read_attribute(model, link, "name"), readAssociationDestination(model, link))
|
|
|
|
|
|
return result!
|
|
|
|