{
* File: E33.sml.txt
* Author: M. Schrefl, B. Neumayr, C. Schuetz, M. Jeusfeld
* Created: 6-Dec-2013/M.Jeusfeld (10-Dec-2013/M.Jeusfeld)
* ------------------------------------------------------
* Variant of Figure 2 of the paper:
* introduce a meta class "Device" to define the cpu association
* at a more abstract level
*
}

cpu in ALABEL end
totalRevenue in ALABEL end
soldPrice in ALABEL end
clockRate in ALABEL end
imei in ALABEL end
value in ALABEL end


Device in OBJECT with
  linkDR m1: Processor
end

Device!m1 with
  sourcelevel s: 3
  targetlevel t: 2
  label l: cpu
end





MobilePhone in OBJECT with
  IN c: Device  
  linkR m1: Processor  {* so, processors may also be used for other devices *}
  linkDR m2: Payment
  linkDR m3: Payment
end

MobilePhone!m1 with
  sourcelevel s: 2
  targetlevel t: 2
  label l: cpu
end

MobilePhone!m2 with
  sourcelevel s: 1
  targetlevel t: 3
  label l: totalRevenue
end

MobilePhone!m3 with
  sourcelevel s: 2
  targetlevel t: 3
  label l: soldPrice
end



Processor in OBJECT with
  linkDR m1: GHz
  linkDR m2: IMEI
end

Processor!m1 with
  sourcelevel s: 1
  targetlevel t: 1
  label l: clockRate
end

Processor!m2 with
  sourcelevel s: 2
  targetlevel t: 1
  label l: imei
end

GHz in OBJECT
end

IMEI in OBJECT
end



Payment in OBJECT with
  linkDR m1: Float
end

Payment!m1 with
  sourcelevel s: 3
  targetlevel t: 1
  label l: value
end

Float in OBJECT 
end



SamsungGS4 in OBJECT with
  IN c: MobilePhone
  linkR m1: Cortex_A15
  linkR m2: Euro
  linkR m3: FFlyerPoints
  linkR m4: MEuro
  linkDR m5: "137inUnit-MEuro"
end

SamsungGS4!m1 with
  sourcelevel s: 1
  targetlevel t: 1
  label l: cpu
end

SamsungGS4!m2 with
  sourcelevel s: 1
  targetlevel t: 2
  label l: soldPrice
end

SamsungGS4!m3 with
  sourcelevel s: 1
  targetlevel t: 2
  label l: soldPrice
end

SamsungGS4!m4 with
  sourcelevel s: 0
  targetlevel t: 1
  label l: totalRevenue
end

SamsungGS4!m5 with
  sourcelevel s: 0
  targetlevel t: 0
  label l: totalRevenue
end




Cortex_A15 in OBJECT with
  IN c: Processor
  linkDR m1: "2.5GHz"
end

Cortex_A15!m1 with
  sourcelevel s: 0
  targetlevel t: 0
  label l: clockRate
end


"2.5GHz" in OBJECT with
  IN c: GHz
end


Euro in OBJECT with
  IN c: Payment
end

Yen in OBJECT with
  IN c: Payment
end

FFlyerPoints in OBJECT with
  IN c: Payment
end

MEuro in OBJECT with
  IN c: Euro
end

"1Euro" in OBJECT with
  IN c: Euro
end

"137inUnit-MEuro" in OBJECT with
  IN c: MEuro
  linkDR m1: 137
end

"137inUnit-MEuro"!m1 with
  sourcelevel s: 0
  targetlevel t: 0
  label l: value
end

"320inUnit-1Euro" in OBJECT with
  IN c: "1Euro"
  linkDR m1: 320
end

"320inUnit-1Euro"!m1 with
  sourcelevel s: 0
  targetlevel t: 0
  label l: value
end


137 in OBJECT with
  IN c: Float
end

320 in OBJECT with
  IN c: Float
end



myMobile in OBJECT with
  IN c: SamsungGS4
  linkDR m1: "CortexA15#1"
  linkDR m2: "320inUnit-1Euro"
end


myMobile!m1 with
  sourcelevel s: 0
  targetlevel t: 0
  label l: cpu
end

myMobile!m2 with
  sourcelevel s: 0
  targetlevel t: 0
  label l: soldPrice
end



"CortexA15#1" in OBJECT with
  IN c: Cortex_A15
  linkDR m1: "1233-322-223"
end

"CortexA15#1"!m1 with
  sourcelevel s: 0
  targetlevel t: 0
  label l: imei
end


"1233-322-223" in OBJECT with
  IN c: IMEI
end