Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Use this function to determine the type of an instance. The function returns the name of the entity.

Syntax

Code Block
TYPE OF base_entity
  • base_entity - Name of the instance's base entity.

Return type

  • string

Examples

Suppose a domain model in which there is a singleton entity Residence that has a multivalued relation hasRooms with Room. Room is the base entity for singleton Kitchen and not singletons Bedroom and Bathroom.

  • for the Kitchen instance the expression TYPE OF Room = “Kitchen”
  • for the Bedroom instances the expression TYPE OF Room = “Bedroom” = TRUE

Back to top

ISACTIVE

Use this function to determine if an instance of a specific type is currently active.

Code Block
ISACTIVE instances [WHERE condition]
  • instances - instances to search
  • condition - optional condition to limit the collection of instances to check

Return type

  • boolean - TRUE if one of the instances is active, FALSE otherwise

    UI Text Box
    typenote

    Singletons are always active, so ISACTIVE <singleton> will always return TRUE 

Examples

Suppose the following data model.

 

instance_idPerson.namePerson.Age
Person_1“Bob”14
Person_2“Jane”25
Person_3“Mary”30
  • If no instance of Person is activated, ISACTIVE Person = FALSE
  • If Person_1 is active, ISACTIVE Person = TRUE
  • If Person_1 is active, ISACTIVE Person WHERE Person.Age >= 18 = FALSE (since Person_1 is excluded by the condition)
  • ISACTIVE system = TRUE (system contains the system attributes and is a singleton. Therefore it is always active)
  • If no instance of Person is activated, the following expression will fail because Person is not in scope:
    • Person.Name >= 18
    By using the ISACTIVE function the expression can be evaluated without error:
    • (ISACTIVE Person) AND Person.name >= 18

      UI Text Box
      typenote

      Note that expression above will be evaluated from left to right, so first (ISACTIVE Person) will be evaluated (= FALSE) and therefore the result of the AND will be FALSE as well. The right hand side of the expression (Person.Name >= 18) will not be evaluated, otherwise the expression would still fail.

Back to top