CER Rules Artifacts - Technical Dependencies

CER rules are composed of rule sets which contain rule classes which, in turn, contain rule attributes. CER rules are exposed at the level of rule sets. Each rule set is an independently delivered unit, however there may be interdependencies between the rule classes and rule attributes both within a rule set and across rule sets.

So while a rule set does not have any direct dependencies outside of itself, it can have such dependencies based on the rule classes and rule attributes it contains.

Dependency Types

CER supports both build time dependencies which are based on defined relationships, these are covered in more detail in the following sections, and runtime dependencies which are free form, and hence need to examined in detail when used rather than following well defined patterns.

Rule Class Dependencies

A rule class can extend another rule class; this is a form of implementation inheritance for rule classes. Each rule class can only extend at most one other rule class (single inheritance). The extended rule class can be from the same rule set or from a different rule set from the extending rule class.

Rule Attribute Dependencies

A rule attribute can define its type to be a rule class, or a collection (such as a list or Timeline) of a rule class, or its type can be a built in Java type. The rule class used for an attribute type can be from the same rule set or from a different rule set from the rule attribute.

A rule attribute can be derived: