Page last modified 14:34, 28 May 2018 by villes

->count() Redirected from User Guides/myXML/5: OCL Rules/Available methods for OCL base types/->count()

    Table of contents

    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>
    Menu