🚀 Welcome to MDriven Learn –  MDriven is now on Discord!  Don’t miss the latest Release Notes.
OCL Collection Operators
No edit summary
No edit summary
Line 14: Line 14:
|Returns a Bag containing all elements of ''self''.
|Returns a Bag containing all elements of ''self''.
|-
|-
|'''[[OCLOperators asSequence|->asSequence]]'''
|'''[[Documentation:OCLOperators asSequence|->asSequence]]'''
|Returns a Sequence containing all elements of ''self''. Element ordering is preserved when possible.
|Returns a Sequence containing all elements of ''self''. Element ordering is preserved when possible.
|-
|-
|'''[[OCLOperators asSet|->asSet]]'''
|'''[[Documentation:OCLOperators asSet|->asSet]]'''
|Returns a Set containing all elements of ''self''.
|Returns a Set containing all elements of ''self''.
|-
|-
|'''[[OCLOperators at|->at]]'''
|'''[[Documentation:OCLOperators at|->at]]'''
|Get the objects at X where the first index is 1
|Get the objects at X where the first index is 1
|-
|-
|'''[[OCLOperators at0|->at0]]'''
|'''[[Documentation:OCLOperators at0|->at0]]'''
|Get the objects at X where the first index is 0
|Get the objects at X where the first index is 0
|-
|-
|'''[[OCLOperators collect|->collect]]'''
|'''[[Documentation:OCLOperators collect|->collect]]'''
|Returns a collection containing the result of applying ''expr'' on all elements contained in ''self''.
|Returns a collection containing the result of applying ''expr'' on all elements contained in ''self''.
|-
|-
|'''[[OCLOperators count|->count]]'''
|'''[[Documentation:OCLOperators count|->count]]'''
|Count how many meet a certain criteria
|Count how many meet a certain criteria
|-
|-
|[[OCLOperators dictionary|'''->dictionary''']]
|'''[[Documentation:OCLOperators dictionary|->dictionary]]'''
|Efficiently looks up values  
|Efficiently looks up values  
|-
|-
|'''[[OCLOperators difference|->difference]]'''
|'''[[Documentation:OCLOperators difference|->difference]]'''
|The difference between 2 collections
|The difference between 2 collections
|-
|-
|'''[[OCLOperators excluding|->excluding]]'''
|'''[[Documentation:OCLOperators excluding|->excluding]]'''
|The collection except for this single object
|The collection except for this single object
|-
|-
|'''[[OCLOperators exists|->exists]]'''
|'''[[Documentation:OCLOperators exists|->exists]]'''
|Returns true if at least one element in ''self'' validates the condition ''expr'', false otherwise.
|Returns true if at least one element in ''self'' validates the condition ''expr'', false otherwise.
|-
|-
|'''[[OCLOperators filterOnType|->filterOnType]]'''
|'''[[Documentation:OCLOperators filterOnType|->filterOnType]]'''
|Only keep the ones of a certain type
|Only keep the ones of a certain type
|-
|-
|'''[[OCLOperators first|->first]]'''
|'''[[Documentation:OCLOperators first|->first]]'''
|Return the first object
|Return the first object
|-
|-
|'''[[OCLOperators forAll|->forAll]]'''
|'''[[Documentation:OCLOperators forAll|->forAll]]'''
|Returns true if all the elements contained in ''self'' validate the condition ''expr'', false otherwise.
|Returns true if all the elements contained in ''self'' validate the condition ''expr'', false otherwise.
|-
|-
|'''[[OCLOperators groupBy|->groupBy]]'''
|'''[[Documentation:OCLOperators groupBy|->groupBy]]'''
|Build a collection of tuples grouped by some aspect
|Build a collection of tuples grouped by some aspect
|-
|-
|'''[[OCLOperators includes|->includes]]'''
|'''[[Documentation:OCLOperators includes|->includes]]'''
|Does the collection include the object
|Does the collection include the object
|-
|-
|'''[[OCLOperators includesAll|->includesAll]]'''
|'''[[Documentation:OCLOperators includesAll|->includesAll]]'''
|Does the collection include the whole other collection
|Does the collection include the whole other collection
|-
|-
|'''[[OCLOperators including|->including]]'''
|'''[[Documentation:OCLOperators including|->including]]'''
|Returns the list with the element in the parameter included.
|Returns the list with the element in the parameter included.
|-
|-
|'''[[OCLOperators indexOf|->IndexOf]]'''
|'''[[Documentation:OCLOperators indexOf|->IndexOf]]'''
|The 1 based index of an object in the collection possibly -1 if not existing
|The 1 based index of an object in the collection possibly -1 if not existing
|-
|-
|'''[[OCLOperators indexOf0|->indexOf0]]'''
|'''[[Documentation:OCLOperators indexOf0|->indexOf0]]'''
|The 0 based index of an object in the collection possibly -1 if not existing
|The 0 based index of an object in the collection possibly -1 if not existing
|-
|-
|'''[[OCLOperators intersection|->intersection]]'''
|'''[[Documentation:OCLOperators intersection|->intersection]]'''
|The intersection of two collections
|The intersection of two collections
|-
|-
|'''[[OCLOperators isEmpty|->isEmpty]]'''
|'''[[Documentation:OCLOperators isEmpty|->isEmpty]]'''
|Returns true if the collection is empty
|Returns true if the collection is empty
|-
|-
|'''[[OCLOperators notEmpty|->]][[OCLOperators notEmpty|notEmpty]]'''
|'''[[OCLOperators notEmpty|->]][[Documentation:OCLOperators notEmpty|notEmpty]]'''
|Returns true if ''self'' contains at least one element, false otherwise.
|Returns true if ''self'' contains at least one element, false otherwise.
|-
|-
|'''[[OCLOperators reject|->]][[OCLOperators reject|reject]]'''
|'''[[OCLOperators reject|->]][[Documentation:OCLOperators reject|reject]]'''
|Returns a collection with all elements of ''self'' except for those who validate the OclExpression ''expr''.
|Returns a collection with all elements of ''self'' except for those who validate the OclExpression ''expr''.
|-
|-
|'''[[OCLOperators select|->]][[OCLOperators select|select]]'''
|'''[[OCLOperators select|->]][[Documentation:OCLOperators select|select]]'''
|Returns a collection with all elements of ''self'' that validate the OclExpression ''expr''.
|Returns a collection with all elements of ''self'' that validate the OclExpression ''expr''.
|-
|-
|'''[[OCLOperators size|->]][[OCLOperators size|size]]'''
|'''[[OCLOperators size|->]][[Documentation:OCLOperators size|size]]'''
|Returns the number of elements contained in ''self''.
|Returns the number of elements contained in ''self''.
|-
|-
|'''[[OCLOperators sum|->]][[OCLOperators sum|sum]]'''
|'''[[OCLOperators sum|->]][[Documentation:OCLOperators sum|sum]]'''
|Returns the sum of all elements contained in ''self'' if they support the '+' operation.
|Returns the sum of all elements contained in ''self'' if they support the '+' operation.
|-
|-
|'''[[OCLOperators last|->last]]'''
|'''[[Documentation:OCLOperators last|->last]]'''
|Returns the last object in the collection
|Returns the last object in the collection
|-
|-
|'''[[OCLOperators orderBy|->orderBy]]'''
|'''[[Documentation:OCLOperators orderBy|->orderBy]]'''
|Sorts the collection on one or more properties
|Sorts the collection on one or more properties
|-
|-
|'''[[OCLOperators orderDescending|->orderDescending]]'''
|'''[[Documentation:OCLOperators orderDescending|->orderDescending]]'''
|Sort the from biggest to smallest
|Sort the from biggest to smallest
|-
|-
|'''[[OCLOperators orderGeneric|->orderGeneric]]'''
|'''[[Documentation:OCLOperators orderGeneric|->orderGeneric]]'''
|Sorts the list of properties with interchangeable sort order: (expr1, OclSortDirection::ascending, expr2, OclSortDirection::descending...)
|Sorts the list of properties with interchangeable sort order: (expr1, OclSortDirection::ascending, expr2, OclSortDirection::descending...)
|-
|-
|'''[[OCLOperators prepend|->prepend]]'''
|'''[[Documentation:OCLOperators prepend|->prepend]]'''
|Returns an OrderedSet containing ''object'' followed by all elements of ''self''.
|Returns an OrderedSet containing ''object'' followed by all elements of ''self''.
|-
|-
|'''[[OCLOperators subSequence|->subsequence]]'''
|'''[[Documentation:OCLOperators subSequence|->subsequence]]'''
|Returns a smaller collection from a start to stop
|Returns a smaller collection from a start to stop
|-
|-
|'''[[OCLOperators symmetricDifference|->symmetricDifference]]'''
|'''[[Documentation:OCLOperators symmetricDifference|->symmetricDifference]]'''
|The symmetric difference between the collections; ie all the objects in collection1 or collection2 but not in both
|The symmetric difference between the collections; ie all the objects in collection1 or collection2 but not in both
|-
|-
|'''[[OCLOperators union|->union]]'''
|'''[[Documentation:OCLOperators union|->union]]'''
|The set of objects in collection1 and objects in collection2
|The set of objects in collection1 and objects in collection2
|}
|}
Line 119: Line 119:
See this page for [[Documentation:Examples on collection operators|examples on collection operators.]]
See this page for [[Documentation:Examples on collection operators|examples on collection operators.]]


Also check out: [[Documentation:OCLOperators|OCLOperators]]
'''Also check out:''' [[Documentation:OCLOperators|OCLOperators]]

Revision as of 05:39, 10 February 2025

This page was created by Stephanie on 2023-04-12. Last edited by Stephanie on 2025-03-10.

Once you have a collection of objects, there are certain operators applicable to them.

You can use the OCL-Editor to see what they are:

Collection of objects operators.png

Operators Description
->append Add another object last
->asBag Returns a Bag containing all elements of self.
->asSequence Returns a Sequence containing all elements of self. Element ordering is preserved when possible.
->asSet Returns a Set containing all elements of self.
->at Get the objects at X where the first index is 1
->at0 Get the objects at X where the first index is 0
->collect Returns a collection containing the result of applying expr on all elements contained in self.
->count Count how many meet a certain criteria
->dictionary Efficiently looks up values
->difference The difference between 2 collections
->excluding The collection except for this single object
->exists Returns true if at least one element in self validates the condition expr, false otherwise.
->filterOnType Only keep the ones of a certain type
->first Return the first object
->forAll Returns true if all the elements contained in self validate the condition expr, false otherwise.
->groupBy Build a collection of tuples grouped by some aspect
->includes Does the collection include the object
->includesAll Does the collection include the whole other collection
->including Returns the list with the element in the parameter included.
->IndexOf The 1 based index of an object in the collection possibly -1 if not existing
->indexOf0 The 0 based index of an object in the collection possibly -1 if not existing
->intersection The intersection of two collections
->isEmpty Returns true if the collection is empty
->notEmpty Returns true if self contains at least one element, false otherwise.
->reject Returns a collection with all elements of self except for those who validate the OclExpression expr.
->select Returns a collection with all elements of self that validate the OclExpression expr.
->size Returns the number of elements contained in self.
->sum Returns the sum of all elements contained in self if they support the '+' operation.
->last Returns the last object in the collection
->orderBy Sorts the collection on one or more properties
->orderDescending Sort the from biggest to smallest
->orderGeneric Sorts the list of properties with interchangeable sort order: (expr1, OclSortDirection::ascending, expr2, OclSortDirection::descending...)
->prepend Returns an OrderedSet containing object followed by all elements of self.
->subsequence Returns a smaller collection from a start to stop
->symmetricDifference The symmetric difference between the collections; ie all the objects in collection1 or collection2 but not in both
->union The set of objects in collection1 and objects in collection2

See this page for examples on collection operators.

Also check out: OCLOperators

Pages in category "OCL Collection Operators"

The following 41 pages are in this category, out of 41 total.

MDriven Chat

How would you like to chat today?

Setting up your conversation…

This may take a few moments