company logo

OSIString - OSI expression string

Inherits:  odaba::String

An OSI string may contain a property name or path, an expression or an operation path definition. OSI strings have to be defined according to the OSI syntax rules described in the "Language Reference".

When constructing or assigning a string value to an OSI string, it is not checked immediately. The OSI string will be analyzed, when being referenced in a function call. In order to verify the value, one may, however, also call check() explicitly.

// property name

  age

  

// property path

  children.age

  

// operation path

  Person::Persons().children().avarageAge()

  

// OSI expression

{

VARIABLES

  int          count = 0;

  int          ageSum = 0;

  set<Person> &persons = Person::Persons

PROCESS

  while ( persons.next )

    while ( persons.children.next ) {

      ++count;

      ageSum += persons.children.age;

    }

  if ( count > 0 )

    return ageSum/count;

  else

    return 0;

}

Attributes
    Functions