->forAll()
Table of contents
- 1. Description of the method
- 2.
- 3. Example
Description of the method
Description: | ->forAll() method returns true if all the elements in the collection validates the condition. |
Available for: | collections |
Parameters: | condition statement |
Return type: | boolean |
Example
Context: | Message |
OCL: | self.Transaction->forAll(a|a.Amount > 30) |
Description: | The example rule checks every transaction in the message if the amount is greater than 30. First a variable "a" is declared for the individual transaction. The condition statement is separated with a "|"-sign. Then the statement is checked for every transaction in the message. If all of the amounts are greater than 30, true will be returned. |
The XML snippet below would pass this check.
<?xml version="1.0" encoding="UTF-8"?> <Message xmlns="http://www.XMLdation.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> |
The other snippet below however would not pass this check. (The first transaction amount is lower than 30)
<?xml version="1.0" encoding="UTF-8"?> <Message xmlns="http://www.XMLdation.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><Header> <Id>a</Id> <TimeStamp>2018-05-28T12:17:50</TimeStamp> <ControlSum>2</ControlSum> <NumberOfTransactions>1</NumberOfTransactions> </Header> <Transaction> <Id>TransactionId1</Id> <Amount>29</Amount> <Debtor> <Name>Debtor1</Name> </Debtor> <Creditor> <Name>Creditor1</Name> </Creditor> </Transaction> <Transaction> <Id>TransactionId2</Id> <Amount>35</Amount> <Debtor> <Name>Debtor2</Name> </Debtor> <Creditor> <Name>Creditor2</Name> </Creditor> </Transaction> </Message> |