cashpoint_model :- ard_att_add('Cashpoint'), ard_property_add(['Cashpoint']), ard_att_add('MenuOption'), ard_att_add('Authentication'), ard_att_add('ClientHasFreeFunds'), ard_att_add('DoesCashpointHaveEnoughCash'), ard_att_add('CashpointActivity'), ard_finalize(['Cashpoint'],['MenuOption','Authentication','ClientHasFreeFunds','DoesCashpointHaveEnoughCash','CashpointActivity']), ard_split(['MenuOption','Authentication','ClientHasFreeFunds','DoesCashpointHaveEnoughCash','CashpointActivity'], [['MenuOption'],['Authentication'],['ClientHasFreeFunds'],['DoesCashpointHaveEnoughCash'],['CashpointActivity']], [ [['MenuOption'],['CashpointActivity']], [['Authentication'],['CashpointActivity']], [['ClientHasFreeFunds'],['CashpointActivity']], [['DoesCashpointHaveEnoughCash'],['CashpointActivity']] ]), ard_att_add('EnteredPIN'), ard_att_add('PINInDatabase'), ard_att_add('NumberOfFailedAttempts'), ard_att_add(authentication), ard_finalize(['Authentication'],['EnteredPIN','PINInDatabase','NumberOfFailedAttempts',authentication]), ard_split(['EnteredPIN','PINInDatabase','NumberOfFailedAttempts',authentication], [['EnteredPIN'],['PINInDatabase'],['NumberOfFailedAttempts'],[authentication]], [ [['EnteredPIN'],[authentication]], [['PINInDatabase'],[authentication]], [['EnteredPIN'],['NumberOfFailedAttempts']], [['PINInDatabase'],['NumberOfFailedAttempts']], [['NumberOfFailedAttempts'],['CashpointActivity']], [[authentication],['CashpointActivity']] ]), ard_att_add('DesiredAmount'), ard_att_add('FreeFunds'), ard_att_add(clientHasFreeFunds), ard_finalize(['ClientHasFreeFunds'],['DesiredAmount','FreeFunds',clientHasFreeFunds]), ard_split(['DesiredAmount','FreeFunds',clientHasFreeFunds], [['DesiredAmount'],['FreeFunds'],[clientHasFreeFunds]], [ [['DesiredAmount'],[clientHasFreeFunds]], [['FreeFunds'],[clientHasFreeFunds]], [[clientHasFreeFunds],['CashpointActivity']] ]), ard_att_add(cashpointActivity), ard_finalize(['CashpointActivity'],[cashpointActivity]), ard_att_add('NumberOfBills'), ard_att_add('EnoughCashInCashpoint'), ard_finalize(['DoesCashpointHaveEnoughCash'],['NumberOfBills','EnoughCashInCashpoint']), ard_split(['NumberOfBills','EnoughCashInCashpoint'], [['NumberOfBills'],['EnoughCashInCashpoint']], [ [['NumberOfBills'],['EnoughCashInCashpoint']], [['EnoughCashInCashpoint'],['cashpointActivity']] ]), ard_att_add(numberOfBills), ard_att_add(enoughCashInCashpoint), ard_finalize(['NumberOfBills'],[numberOfBills]), ard_finalize(['EnoughCashInCashpoint'],[enoughCashInCashpoint]), ard_att_add(menuOption), ard_att_add(desiredAmount), ard_att_add(enteredPIN), ard_att_add(freeFunds), ard_att_add(pINInDatabase), ard_att_add(numberOfFailedAttempts), ard_finalize(['MenuOption'],[menuOption]), ard_finalize(['DesiredAmount'],[desiredAmount]), ard_finalize(['EnteredPIN'],[enteredPIN]), ard_finalize(['FreeFunds'],[freeFunds]), ard_finalize(['PINInDatabase'],[pINInDatabase]), ard_finalize(['NumberOfFailedAttempts'],[numberOfFailedAttempts]), %inaczej by sie nie dalo, poniewaz free funds 'powstaje' pozniej i jest czescia innego atrybutu - ClientHasFreeFunds ard_depend_add(['authentication'],[numberOfBills]), ard_depend_add(['clientHasFreeFunds'],[numberOfBills]), ard_depend_add(['enoughCashInCashpoint'],[numberOfBills]), ard_depend_add(['menuOption'],[numberOfBills]), ard_depend_add(['numberOfFailedAttempts'],[numberOfBills]), ard_depend_add(['desiredAmount'],['enoughCashInCashpoint']). :- cashpoint_model.