->select()
Table of contents
- 1. Description of the method
- 2.
- 3. Example
Description of the method
Description: | ->select() method returns a collection of elements from the original collection that validates the condition. |
Available for: | collections |
Parameters: | condition statement |
Return type: | collection |
Example
Context: | Message |
OCL: | self.Transaction.Deptor.Name->select('Mike')->size() = 1 |
Description: | The example rule checks every transaction debtor name in the message and if 'Mike' is found, it will be added to the collection that will be returned. The additional method size() will then return the size of the returned collection and the size is the compared to the integer 1. True will be returned if there is exactly one Mike in the transactions debtors. |
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. (No Mike in the transaction debtors)
<?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> |