Skip to content
Snippets Groups Projects
Commit dea0bffa authored by Alexander Diewald's avatar Alexander Diewald
Browse files

DI: Base the DSE architecture on DI.


* Create a top-most injector (DSE injector) when the explorer is
  created. It hosts the Opt4J injector and allows accessing data from
  the DSE from within Opt4J Modules.
* Enable Multi-Operator bindings (multiple operators from which one is
  selected to be applied on the same Genotype-Type) by the Operator's
  type. This is required to allow injecting DSE-wide parameters, e.g.,
  system model data.
  * Use a OperatorKey to allow registering Operators Objects or their
    Classes in the selection map.
  * Operators registered by their type are initialized lazily when they
    are delivered by the OperatorSelector on request.
* Remove various dependencies on the SystemModelAdapter (Use DI where
  data is needed). This allows to break up very complex inheritance
  hierarchies.
* Extend the SystemModelAdapter to use @Provides annotations that are
  used in opt4j modules (e.g. decoders) to obtain system model data.
* Some of the old custom factories are now initialized with a null value
  for the SystemModelAdapter since they will be removed soon due to the
  use of DI.

Signed-off-by: default avatarAlexander Diewald <diewald@fortiss.org>
parent c4fedc10
No related branches found
No related tags found
1 merge request!2Dependency injection
Showing
with 184 additions and 96 deletions
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment