->exists()
Table of contents
- 1. Description of the method
- 2.
- 3. Example
Description of the method
Description: | ->exists() method returns true if one of the elements in the collection validates the condition. |
Available for: | collections |
Parameters: | condition statement |
Return type: | boolean |
Example
Context: | Message |
OCL: | self.Transaction->exists(a|a.Amount > 100) |
Description: | The example rule checks every transaction in the message and if one of the amounts is greater than 100, true will be returned. 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 one of the amounts is greater than 100, 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. (Neither of the transaction amounts is higher than 100)
<?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>30</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> |