collect select RoyalandLoyal
inv invariant_ProgramPartner1 :
self.programs->collect( i_LoyaltyProgram : LoyaltyProgram | i_LoyaltyProgram.partners )->select( p : ProgramPartner | p <> self )->isEmpty()
<details key="invariant_ProgramPartner1" value="self.programs->collect( i_LoyaltyProgram : LoyaltyProgram | i_LoyaltyProgram.partners )->select( p : ProgramPartner | p <> self )->size() = 0"/>
genera
576
577 invariant10 = context _ProgramPartner [invariant_ProgramPartner1]
578 invariant_ProgramPartner1 self = ((((ocl self |.| programs |->| collect(\i_LoyaltyProgram -> ocl i_LoyaltyProgram |.| partners)) |->| select(\p -> (ocl p) |<>| (ocl self))) |->| size)) |==| (oclInt 0)
579
580
ACCELEO.hs:577:40: error:
• Couldn't match type ‘(ProgramPartner, ModelElement_)’
with ‘Collection ProgramPartner_’
Expected type: Val ProgramPartner_ -> OCL Model (Val Bool)
Actual type: Val (Collection ProgramPartner_)
-> OCL Model (Val Bool)
• In the expression: invariant_ProgramPartner1
In the second argument of ‘context’, namely
‘[invariant_ProgramPartner1]’
In the expression:
context _ProgramPartner [invariant_ProgramPartner1]
Para este modelo
example = Model [
(ModelElement 0 (RootCh (Root [1] [2] [3] [4, 5] [6, 7] [8, 9] [10, 11] [12, 13] [14, 15] )))
, (ModelElement 1 (LoyaltyProgramCh (LoyaltyProgram "Programa1" [3] [6, 7] [10, 11] )))
, (ModelElement 2 (CustomerCh (Customer "Edward" "Mr." True 20 [6, 7] [4, 5] )))
, (ModelElement 3 (ProgramPartnerCh (ProgramPartner 1 "Partner1" [1] [8, 9] )))
, (ModelElement 4 (CustomerCardCh (CustomerCard True "Tarjeta1Cliente1" 2 6 [14] )))
, (ModelElement 5 (CustomerCardCh (CustomerCard True "Tarejeta2Cliete1" 2 7 [15] )))
, (ModelElement 6 (MembershipCh (Membership 11 4 [12] 1 2 )))
, (ModelElement 7 (MembershipCh (Membership 10 5 [13] 1 2 )))
, (ModelElement 8 (ServiceCh (Service True 1000 1000 "Service1 cliente1" 9000 3 11 [15] )))
, (ModelElement 9 (ServiceCh (Service True 0 0 "servicio2Cliente1" 0 3 10 [14] )))
, (ModelElement 10 (ServiceLevelCh (ServiceLevel "Silver" 1 [7] [9] )))
, (ModelElement 11 (ServiceLevelCh (ServiceLevel "Gold" 1 [6] [8] )))
, (ModelElement 12 (LoyaltyAccountCh (LoyaltyAccount 0 2 [14] 6 )))
, (ModelElement 13 (LoyaltyAccountCh (LoyaltyAccount 1000 1 [15] 7 )))
, (ModelElement 14 (TransactionCh (Transaction 1000 1000.0 4 12 9 (Just (EarningCh (Earning ))))))
, (ModelElement 15 (TransactionCh (Transaction 2000 0.0 5 13 8 (Just (EarningCh (Earning ))))))
]