{ * File: E13.sml.txt * Author: Michael Schrefl, Bernd Neumayr, Manfred Jeusfeld * Created: 1-Jul-2013/M.Jeusfeld (1-Jul-2013/M.Jeusfeld) * ------------------------------------------------------ * E13: Complex Example * from slides DualDeepInstantiation.ppt (M.S.), slide 13 * } baseUnit in ALABEL end referenceUnit in ALABEL end system in ALABEL end unit in ALABEL end convToMetric in ALABEL end convToBase in ALABEL end val in ALABEL end usedBy in ALABEL end MeasureWeightsystem in OBJECT with linkDR m1: MeasureWeightsystem; m2: MeasureWeightsystem; m3: STRING; m4: STRING; m5: FLOAT; m6: FLOAT; m7: FLOAT; m8: Country end MeasureWeightsystem!m1 with sourcelevel s: 2 targetlevel t: 3 label l: baseUnit end MeasureWeightsystem!m2 with sourcelevel s: 2 targetlevel t: 3 label l: referenceUnit end MeasureWeightsystem!m3 with sourcelevel s: 1 targetlevel t: 1 label l: system end MeasureWeightsystem!m4 with sourcelevel s: 3 targetlevel t: 1 label l: unit end MeasureWeightsystem!m5 with sourcelevel s: 3 targetlevel t: 1 label l: convToMetric end MeasureWeightsystem!m6 with sourcelevel s: 2 targetlevel t: 1 label l: convToBase end MeasureWeightsystem!m7 with sourcelevel s: 4 targetlevel t: 1 label l: val end MeasureWeightsystem!m8 with sourcelevel s: 1 targetlevel t: 1 label l: usedBy end STRING in OBJECT end FLOAT in OBJECT end Country in OBJECT end Metricsystem in OBJECT with IN c1: MeasureWeightsystem linkDR m1: Metricsystem end Metricsystem!m1 with sourcelevel s: 1 targetlevel t: 2 label l: referenceUnit end Imperialsystem in OBJECT with IN c1: MeasureWeightsystem linkDR m1: US end Imperialsystem!m1 with sourcelevel s: 0 targetlevel t: 0 label l: usedBy end US in OBJECT with IN c1: Country end MetricMeasure in OBJECT with IN c1: Metricsystem linkDR m1: "m" end MetricMeasure!m1 with sourcelevel s: 0 targetlevel t: 0 label l: referenceUnit end MetricLengthMeasure in OBJECT with SPEC c1: MetricMeasure linkDR m1: "m" end MetricLengthMeasure!m1 with sourcelevel s: 0 targetlevel t: 0 label l: baseUnit end MetricSquareMeasure in OBJECT with SPEC c1: MetricMeasure linkDR m1: MetricSquareMeasure; m2: "m2" end MetricSquareMeasure!m1 with sourcelevel s: 0 targetlevel t: 1 label l: baseUnit end MetricSquareMeasure!m2 with sourcelevel s: 0 targetlevel t: 0 label l: baseUnit end "m" in OBJECT with {* Meter *} IN c1: MetricLengthMeasure end "km" in OBJECT with IN c1: MetricLengthMeasure end "m2" in OBJECT with IN c1: MetricSquareMeasure end "cm2" in OBJECT with IN c1: MetricSquareMeasure end "12km" in OBJECT with IN c1: "km" linkDR m1: 12 end "12km"!m1 with sourcelevel s: 0 targetlevel t: 0 label l: val end 12 in OBJECT with IN c1: FLOAT end