Navigation  without Java Scripts

OBJECT Predicate Domain Declarations

An object predicate domain declares a type (or a group) of object (non-static) member predicates.

The object predicate domains can be used for declarations of object (non-static) predicates that can be used as object predicate values. These object predicate values can be passed as arguments to other predicates.

Object predicate domains can be declared both outside and inside classes, but in difference to "ordinary" predicate domains, object predicate domains can be used for declarations of object predicate values only inside classes. This is because, when an object predicate value is passed as an argument, it should carry the reference to the actual class instance (object) to which the predicate value belongs.

The declaration of an object predicate domain is of the form:

[GLOBAL] DOMAINS
PredicateDom = object
PredicateMode [ReturnDomain] (arglist) [- [flowpattern]] [language]
For example, the declaration of object predicate domain for a group of deterministic predicates taking an integer as argument and returning an integer, would be:
DOMAINS
LIST_PROCESS = object determ integer (integer) - (i)
Comparison with declaration of predicates

In contradistinction to predicate declarations, in declarations of object predicate domains:
The keyword object is mandatory in declarations of object predicate domains.
Brackets of argument list should always be given.
Only one flowpattern can be specified.
If flowpattern is not specified then the default flow pattern with all input arguments is accepted.
The predicate mode declaration PredicateMode (keyword multi, nondeterm, determ, procedure, failure or erroneous) should always be specified directly after the keyword object. The predicate mode cannot be redeclared before flowpattern.

See also

Object Predicate Values