-
Task
-
Resolution: Done
-
Major
-
None
-
None
-
2022 Week 08-10 (from Feb 21)
-
8
-
NEW
-
NEW
KnowledgeBuilderImpl, ModelBuilderImpl and CompositeKnowledgeBuilderImpl have a complicated relation.
- CompositeKnowledgeBuilderImpl delegates to a KnowledgeBuilderImpl,
- ModelBuilderImpl extends KnowledgeBuilderImpl so that it can be a delegate in CompositeKnowledgeBuilderImpl and so that it can override some behavior.
all in all, most work is being done by methods jn KnowledgeBuilderImpl such as compileFunctions() or compileAccumulateFunctions, initializeImports etc.
These functions have little impact over the rest of the state in KnowledgeBuilderImpl, but they are very hard to spot.
The goal of this task is to turn each of these methods into stand-alone classes, with a clearer surface.
The end goal is to realize a series of "compilation phases" with a clear surface, so that they can be composed and/or rearranged depending on the use case, avoiding complex inheritance hierarchies / unclear overrides.