Description of the method
Description: | ->count() method returns the number of occurencies of the given object in the collection. |
Available for: | collections |
Parameters: | object |
Return type: | integer |
Example
Context: | Message |
OCL: | self.Transaction.Amount->count(30) = 2 |
Description: | The example rule checks every transaction amount in the message and if the number of occurencies of the value 30 is 2, 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">
<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>30</Amount>
<Debtor>
<Name>Debtor2</Name>
</Debtor>
<Creditor>
<Name>Creditor2</Name>
</Creditor>
</Transaction>
</Message>
The other snippet below however would not pass this check. (The second transaction amount is not 30, therefor the number of occurrencies is 1)
<?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>