The DataStoreRuleObjectCreator takes a Datastore record (typically a record relating to a user or person), and navigates to all the descendant records of this "root" record (typically containing all the person's gathered evidence).
It then proceeds to create rule objects by performing a straightforward "natural mapping" between:
The DataStoreRuleObjectCreator also takes special action for CER rule attributes with certain names:
If a rule class contains a rule attribute named parentEntity, then the DataStoreRuleObjectCreator will set its value to be the rule object created from the parent record in the Datastore (if any). CER will issue a runtime error if the type of this rule attribute does not match the rule class of the parent entity's rule object; and
If a rule class contains any attributes named childEntities_ followed by the name of a rule class, then the DataStoreRuleObjectCreator will set each such attribute's value to be a list of the rule objects created from the child records of that type in the Datastore (if any). CER will issue a runtime error if the type of this rule attribute is not a list of the named rule class.