stereotypes and tagged values on packages

git-svn-id: https://projects.brucker.ch/su4sml/svn/infsec-import/trunk/src/su4sml@3153 3260e6d1-4efc-4170-b0a7-36055960796d
This commit is contained in:
Jürgen Doser 2005-09-28 16:55:59 +00:00
parent 72b04971f0
commit 29c36c6059
3 changed files with 24 additions and 4 deletions

View File

@ -60,9 +60,11 @@ datatype Package = Package of { xmiid : string,
associations : Association list,
generalizations: Generalization list,
constraints : Constraint list,
stereotypes : Stereotype list,
stereotypes : Stereotype list, (* contained stereotype definitions *)
dependencies : Dependency list,
tag_definitions: TagDefinition list}
tag_definitions: TagDefinition list,
stereotype : string list, (* idref to stereotype of this package *)
taggedValue : TaggedValue list}
end

View File

@ -354,6 +354,17 @@ fun state_taggedvalue_of table tag st =
(state_taggedvalues_of table st))
(* returns a list of tag-value pairs *)
fun package_taggedvalues_of table (XMI.Package p) =
map (fn x => (find_tagdefinition table (#tag_type x),#dataValue x))
(#taggedValue p)
(* returns the value of the given tag *)
fun package_taggedvalue_of table tag (XMI.Package p) =
Option.map #2 ((List.find (fn (x,y) => x=tag))
(package_taggedvalues_of table (XMI.Package p)))
(* check whether a class has the given stereotype *)
fun classifier_has_stereotype t st c =
List.exists (fn x => (find_stereotype t x) = st)

View File

@ -923,7 +923,8 @@ fun mkActivityGraph tree =
fun mkPackage tree =
(if XmlTree.tagname_of tree = "UML:Model" orelse
XmlTree.tagname_of tree = "UML:Package" then
let val trees = XmlTree.follow "UML:Namespace.ownedElement"
let val direct_childs = XmlTree.node_children_of tree
val trees = XmlTree.follow "UML:Namespace.ownedElement"
(XmlTree.node_children_of tree)
val atts = XmlTree.attributes_of tree in
XMI.Package { xmiid = getXmiId atts,
@ -945,7 +946,13 @@ fun mkPackage tree =
(filterTagDefinitions trees)),
state_machines = nil,
activity_graphs = nil,
dependencies = (map mkDependency (filterDependencies trees))
dependencies = (map mkDependency (filterDependencies trees)),
stereotype = (map (getXmiIdref o XmlTree.attributes_of)
(XmlTree.follow "UML:ModelElement.stereotype"
direct_childs)),
taggedValue = (map mkTaggedValue
(XmlTree.follow "UML:ModelElement.taggedValue"
direct_childs))
}
end
else raise IllFormed "did not find a UML:Model or UML: Package")