Adding a new Configuration Parameter - HPI-Information-Systems/Metanome GitHub Wiki
For adding a new configuration parameter, you have to do the following steps:
algorithm_integration
- Implement a configuration setting in
de.metanome.algorithm_integration.configuration: A configuration setting contains all values, which are set in the frontend and needed for execution. Your setting should extend eitherConfigurationSettingPrimitiveorConfigurationSettingDataSource. - Implement a configuration requirement in
de.metanome.algorithm_integration.configuration: A configuration requirement contains a list of configuration settings. It should extendConfigurationRequirement. - Add an interface for your configuration parameter
in de.metanome.algorithm_integration.algorithm_types: Each algorithm, which uses your configuration parameter, has to implement this interface. You should name the method according to following pattern:set<value_name>ConfigurationValue(String identifier, <value_type>... values) throws AlgorithmConfigurationExecution - Add the method
ConfigurationValue build(<your-configuration-requirement> requirement) throws AlgorithmConfigurationExceptiontode.metanome.algorithm_integration.configuration.ConfigurationFactory. - Add JSONSubTypes for your configuration parameter in
ConfigurationRequirement,ConfigurationRequirementDefaultValue,ConfigurationSettingandConfigurationSettingPrimitiveorConfigurationSettingDataSource.
backend
- Implement a configuration value in
de.metanome.backend.configuration, which implements the interfaceConfigurationValue. Add a JSONSubType for your parameter in the superclass. - Add your configuration value to
de.metanome.backend.configuration.DefaultConfigurationFactory
testing_algorithms
Adapt one testing algorithm so that it uses your configuration requirement.
frontend
In the Metanome frontend repository the methods updateParameter and readParamsIntoBackendFormat in the file src/app/new/new.controller.js have to be updated.
Add and update test!!! This list might be incomplete, please update it!