def __init__(self, configuration, input_parameter_values):
"""
To initialize an entity, a corresponding entity configuration together
and values for the input parameter(s) are needed.
:param configuration: an object of class EntityConfiguration
:param input_parameter_values: A dictionary with values for the input parameters defined in the configuration.
"""
# corresponding entity configuration
self.configuration = configuration
# parameters needed to identify entity (or for validation)
self.input_parameters = OrderedDict.fromkeys(configuration.input_parameters)
# parameters that should be retrieved using the API
self.output_parameters = OrderedDict.fromkeys(configuration.output_parameter_mapping.keys())
# set values for input parameters
for parameter in configuration.input_parameters:
if parameter in input_parameter_values:
self.input_parameters[parameter] = input_parameter_values[parameter]
else:
raise IllegalArgumentError("Illegal input parameter: " + parameter)
# get uri for this entity from uri template in the configuration
uri_variable_values = {
**self.input_parameters,
"api_key": self.configuration.api_key
}
self.uri = self.configuration.uri_template.replace_variables(uri_variable_values)
评论列表
文章目录