Method compares the given value to the value of the parameter and returns the greater one.
Description of the method
Description: | .max() method compares the given value to the value of the parameter and returns the greater one. |
Available for: | integer, real |
Parameters: | integer, real |
Return type: | integer, real |
Example
Context: | Message |
OCL: | self.Transaction->asSequence().Amount->at(0).max(self.Transaction->asSequence().Amount->at(1)) = 100 |
Description: | The example rule compares the larger amount from the first and second transaction amounts to the right side operand. It's assumed that there is at least two transactions. The 'at' method doesn't work with the Bag type so it has to be changed to Sequence. |
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>100</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>
The other snippet below however would not pass this check. (The larger amount, 35, is not equal to 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>