git-svn-id: https://projects.brucker.ch/su4sml/svn/su4sml/trunk@7989 3260e6d1-4efc-4170-b0a7-36055960796d
This commit is contained in:
parent
b3db1b74f8
commit
3d38ea1f0e
|
@ -65,8 +65,10 @@ sig
|
|||
val disjugate_terms : Rep_OclTerm.OclTerm list -> Rep_OclTerm.OclTerm
|
||||
(** Get an attribute by name. *)
|
||||
val get_attribute : string -> Rep_Core.Classifier -> Rep.Model -> Rep_Core.attribute
|
||||
(** Get an associationend by name.*)
|
||||
val get_associationend : string -> Rep_Core.Classifier -> Rep.Model -> Rep_Core.associationend
|
||||
(** Get an operation by name. *)
|
||||
(* val get_operation : string -> Rep_Core.Classifier -> Rep.Model -> Rep_Core.operation *)
|
||||
(* val get_operation : string -> Rep_Core.Classifier -> Rep.Model -> Rep_Core.operation *)
|
||||
(** *)
|
||||
val class_contains_op : Rep_Core.operation -> Rep.Model -> Rep_Core.Classifier -> bool
|
||||
(** *)
|
||||
|
@ -220,10 +222,29 @@ fun get_attribute s classifier model =
|
|||
val x = List.find (fn a => if ((#name a) = s) then true else false) (all_attributes_of classifier model)
|
||||
in
|
||||
case x of
|
||||
NONE => raise WFCPOG_LibraryError ("No attribute found using 'get_attribute'.\n")
|
||||
NONE =>
|
||||
let
|
||||
val _ = trace exce ("No such Attribute: \n In Classifier "^(string_of_path (name_of classifier))^" in attribute "^s)
|
||||
in
|
||||
raise WFCPOG_LibraryError ("No attribute found using 'get_attribute'.\n")
|
||||
end
|
||||
| SOME (x) => x
|
||||
end
|
||||
|
||||
fun get_associationend s classifier model =
|
||||
let
|
||||
val x = List.find (fn a => if ((List.last(#name a)) = s) then true else false) (all_associationends_of classifier model)
|
||||
in
|
||||
case x of
|
||||
NONE =>
|
||||
let
|
||||
val _ = trace exce ("No such associationend: \n In Classifier "^(string_of_path (Rep_Core.name_of classifier))^" no associationend called "^(s)^".\n")
|
||||
in
|
||||
raise WFCPOG_LibraryError ("No attribute found using 'get_attribute'.\n")
|
||||
end
|
||||
| SOME(x) => x
|
||||
end
|
||||
|
||||
|
||||
fun go_up_hierarchy location func (model as (clist,alist)) =
|
||||
let
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
|
||||
|
||||
"visibilityconsistency.sml" ===> [DONE (class: support for
|
||||
assocends)] ==> MANUEL
|
||||
"liskovconstraint.sml" ===> [DONE (invariants)]
|
||||
"visibilityconsistency.sml" ===> [DONE]
|
||||
"liskovconstraint.sml" ===> [DONE]
|
||||
"datamodelconsistency.sml" ===> [DONE]
|
||||
"constructorconsistency.sml" ===> [DONE
|
||||
(force_initialize_attributes still left]
|
||||
|
|
|
@ -96,6 +96,6 @@ val pos =
|
|||
[po_lsk_pre,po_lsk_post,po_lsk_inv,po_cm,po_sm,po_om,po_cstr_post,po_cstr_attribute,po_cstr_all]
|
||||
|
||||
(*
|
||||
val wfcs = [wfc_vis_class]
|
||||
val wfcs = [wfc_vis_runtime]
|
||||
val pos = [po_lsk_inv]
|
||||
*)
|
||||
|
|
|
@ -204,8 +204,8 @@ fun test (tc:testcase) wfs pos =
|
|||
let
|
||||
val i_model = ModelImport.import (#uml tc) (#ocl tc) []
|
||||
val (clist,alist) = Rep_Core.normalize_ext i_model
|
||||
(* val model = (((#1 i_model)@oclLib),(#2 i_model)) *)
|
||||
val model = ((clist@oclLib),alist)
|
||||
val model = (((#1 i_model)@oclLib),(#2 i_model))
|
||||
(* val model = ((clist@oclLib),alist) *)
|
||||
val _ = trace wgen ("Model of testcase loaded ...\n")
|
||||
val x = start_tests model (wfs@pos)
|
||||
val _ = trace wgen ("Test finished ...\n")
|
||||
|
|
|
@ -122,8 +122,8 @@ and expr_is_visible modif (Literal(s,typ)) model = true
|
|||
val _ = trace wgen ("start expr_is_visible")
|
||||
val cl = class_of_term src model
|
||||
val att_name = List.last(path)
|
||||
val _ = trace wgen ("start get_attribute ")
|
||||
val att = get_attribute att_name cl model
|
||||
val _ = trace wgen ("start get_associationends ")
|
||||
val att = get_associationend att_name cl model
|
||||
val _ = trace wgen ("end expr_is_visible")
|
||||
in
|
||||
if (visibility_conforms_to (#visibility att) modif)
|
||||
|
@ -173,9 +173,7 @@ fun check_entity_classifier class model =
|
|||
let
|
||||
val vis_ops = List.map (fn (a:operation) => ((#visibility a),SOME(a),NONE,NONE)) (all_operations_of class model)
|
||||
val vis_atts = List.map (fn (a:attribute) => ((#visibility a),NONE,SOME(a),NONE)) (all_attributes_of class model)
|
||||
(* val vis_assocs = List.map (fn (a:associationend) => ((#visibility a),NONE,NONE,SOME(a))) (all_associationends_of class model)
|
||||
handle Bind => raise WFCPOG.WFCPOG_Exception ("Bind exception\n")
|
||||
*)
|
||||
val vis_assocs = List.map (fn (a:associationend) => ((#visibility a),NONE,NONE,SOME(a))) (all_associationends_of class model)
|
||||
val vis_class = visibility_of class
|
||||
val check =
|
||||
List.map (fn ((a:Visibility),x,y,z) =>
|
||||
|
@ -198,7 +196,7 @@ fun check_entity_classifier class model =
|
|||
in
|
||||
raise WFCPOG.WFC_FailedMessage (s1^s2^s3^s4^s5^s6)
|
||||
end
|
||||
) ((vis_ops)@(vis_atts))
|
||||
) ((vis_ops)@(vis_atts)@(vis_assocs))
|
||||
in
|
||||
List.all (fn a => a = true) check
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue