OCL Benchmark B3 with extensions

abstract Person
	
ada : Person

cyd : Person	

eve : Person
	
bob : Person
	
dan : Person
	
abstract Exam
	date: string
		[this != ""]
	recorder -> Person
	examiner -> Person
	examinee -> Person

ada_bob_cyd:Exam
	[date = "20001023"
	recorder = cyd
	examiner = bob
	examinee = ada]

dan_bob_ada:Exam
	[date = "20040817"
	recorder = ada
	examiner = bob
	examinee = dan]

eve_ada_dan:Exam
	[date = "20080331"
	recorder = dan
	examiner = ada
	examinee = eve]

examineeAda -> Exam *
[examineeAda = {e:Exam|e.examinee = ada}]
	
recorderAda -> Exam *
[recorderAda = {e:Exam|e.recorder = ada}]	

examinerAda -> Exam *
[examinerAda = {e:Exam|e.examiner = ada}]	

//Navigating higher-order association using Set Comprehension extension

examineeOfAdaAsExaminer -> Person *
[examineeOfAdaAsExaminer = {e:Exam|e.examiner = ada|e.examinee}]	

examineeOfAdaAsRecorder -> Person *
[examineeOfAdaAsRecorder = {e:Exam|e.recorder = ada|e.examinee}]


examinerOfAdaAsExaminee -> Person *
[examinerOfAdaAsExaminee = {e:Exam|e.examinee = ada|e.examiner}]


examinerOfAdaAsRecorder -> Person *
[examinerOfAdaAsRecorder = {e:Exam|e.recorder = ada|e.examiner}]

recorderOfAdaAsExaminee -> Person *
[recorderOfAdaAsExaminee = {e:Exam|e.examinee = ada|e.recorder}]

recorderOfAdaAsExaminer -> Person *
[recorderOfAdaAsExaminer = {e:Exam|e.examiner = ada|e.recorder}]


//Navigating higher-order association using Reverse Reference

examineeOfAdaAsExaminer -> Person *
[examineeOfAdaAsExaminer = ada.~examiner.parent.examinee]

examineeOfAdaAsRecorder -> Person *
[examineeOfAdaAsRecorder = ada.~recorder.parent.examinee]


examinerOfAdaAsExaminee -> Person *
[examinerOfAdaAsExaminee = ada.~examinee.parent.examiner]


examinerOfAdaAsRecorder -> Person *
[examinerOfAdaAsRecorder = ada.~recorder.parent.examiner]

recorderOfAdaAsExaminee -> Person *
[recorderOfAdaAsExaminee = ada.~examinee.parent.recorder]

recorderOfAdaAsExaminer -> Person *
[recorderOfAdaAsExaminer = ada.~examiner.parent.recorder]
 
Module Statistics: | No model. |

Module Downloads: | [.cfr] | [.html] |