.allInstances()

Description of the method

Description: .allInstances() method returns a set containing all of the instances of the given classifier .
Available for: classifiers
Parameters: -
Return type: set 

Example

Context: Message
OCL: self.Transaction.Amount.allInstances()->size() = 2 
Description: The example rule checks every transaction amount in the message and if the number of instances is two, true will be returned. The size method returns the size of the set returned by the allInstances method. 

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>30</Amount>
    <Debtor>
      <Name>Debtor2</Name>
    </Debtor>
    <Creditor>
      <Name>Creditor2</Name>
    </Creditor>
  </Transaction>
</Message>

The other snippet below however would not pass this check. (Only one transaction therefor only one amount)

<?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>
</Message>