Training / OCLOperators OCLOperators
General Operators
To find all available operators, you can open the OCL-Editor and type in a class:
Collection Operators
Once you have a collection of objects, there are certain operators applicable to them.
See this page for examples on collection operators.
Again, you can use the OCL-Editor to see what they are:
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
->notEmpty
Returns true if the collection is not empty
->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 .
->reject
Returns the objects not matching the criteria
->select
Returns the objects matching the criteria
->size
Returns the number of elements in the collection
->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
String Operators
Operators
Description
Escape codes
Escape (special) characters used in OCL
StringToAnsiBase64
Convert a string to an ANSI (1252) and as a base64 string
StringToEncodedBase64
Convert a string to a specific encoding and as a base64 string. For example Western European (ISO) Codepage 28591
size () : Integer
Returns the number of characters composing self .
subString
Returns the substring of the string operated on. The substring starts at parameter 1 and ends at parameter 2. The counting is 1-based.
toInteger () : Integer
Returns self with all characters converted to lowercase.
toLower () : String
Returns self with all characters converted to lowercase.
toReal () : Real
Returns a Real of value equal to self , or |invalid| if self does not represent a real.
toUpper () : String
Returns self with all characters converted to uppercase.
Number Operators
In addition to the basic math functions (+, -, /, \*) are a number of advanced functions. Take note that *Number* denotes both *Integer* and *Real*, and they're substitutive unless otherwise specified.
Boolean Operators
Operators
Description
And
And
True
False
Invalid
True
true
false
true
False
false
false
false
Invalid
invalid
false
invalid
Implies
Implies
True
False
Invalid
True
true
false
invalid
False
true
true
true
Invalid
true
invalid
invalid
Or
Or
True
False
Invalid
True
true
true
true
False
true
false
invalid
Invalid
true
invalid
invalid
Not
Not
Result
True
false
False
true
Invalid
invalid
Xor
Xor
True
False
Invalid
True
false
true
invalid
False
true
false
invalid
Invalid
invalid
invalid
invalid
Viewmodel Operators (on selfVM variable)
See page SelfVM