Training / OCLOperators OCLOperators
General Operators
To find all available operators, you can open the OCL-Editor and type in a class:
Operators
Description
allInstances
All the objects of the class
allinstancesAtTime
All the currently loaded instances
allLoadedObjects
All objects currently in memory, excluding deleted objects
allStates
Meta information about available states in state machines the class may contain
allSubClasses
Meta information on all the sub-classes this class has
allSuperTypes
Meta information on all the super-classes – in inheritance order the class has
ASCII
associationEnds
Returns a collection of strings with association names for the class
associationEndsWithType
Returns a collection of strings with association names and type information for the class
asString
The string representation of the class – the asString operation is available on everything
asTaJson
Returns a json string defined by the ViewModel
atTime
Gives the read-only representation of a versioned object as it was at time X.
Attributes
Meta information about what attributes the class has
BigEndianUnicode
brokenConstraints
Returns a collection of the names of broken constraints for the class and object.
canAccess
Check ViewModels Access expression for root
Constraints
Meta information on what constraints the class has
count
Returns how many times the object is in the collection self .
Default
Empty
emptylist
Returns an empty list typed to hold objects of the class
existing
The existing operator returns true if the object hasn't been deleted.
externalId
Returns the external ID for the object operated on.
format
IsDirty
Returns true if the objects have been changed since the last save.
IsNew
IsNew operator returns true if the object has never been saved to the database.
isDirtyMember
Called on a class attribute to check if this attribute has changes pending to be saved.
isNull
Returns true if the value is null (not assigned any value).
maxValue
Gets the maximum value in a collection of values
minValue
Gets the minimum value in a collection of values
nullValue
A typed null value
objectFromExternalId
An external identity will be resolved to the object
oclAsType
The type of the class
oclGetStates
Gets a list of the objects all state machines currently state as strings.
oclIsInvalid
Returns true if self is equal to *invalid*.
oclIsKindOf
This is to if a class is a subclass or as the class itself and not unrelated
oclIsTypeOf
Returns true if
OnCreate
Is often called when a new object has been created.
OnUpdate
Is called just before the object is saved to the database.
oclIsUndefined
Returns true if self is equal to invalid or null.
OclType
When used on an object, you get the type of the object.
random
safeCast
sqlpassthrough
Calls a stored procedure
sqlpassthroughobjects
Return a primary key of SomeClass. This can be combined with other Ocl-PS via ->intersection or union.
superTypes
Returns the set of all direct supertypes of the type.
TaggedValue
Meta information on tagged values set in the class
TaggedValueOnFeature
Meta information on Tagged values set on a named feature in the class
Typename
The type name as a string
ViewModels
A tuple with the ViewModels for this class a members
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
->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
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