class QuerySensorCreationStrategy implements IResolveDependencyStrategy {

    @Override
    public <T> T resolve(final Object... args) throws ResolveDependencyStrategyException {
        Object statisticsChainId = args[CHAIN_ID_STRATEGY_ARGUMENT_INDEX];
        IObject conf = (IObject) args[CONFIG_STRATEGY_ARGUMENT_INDEX];

        try {
            conf.setValue(statisticsChainFieldName, statisticsChainId);
            conf.setValue(actionFieldName, ACTION_DEPENDENCY);

            ISchedulerEntry entry = IOC.resolve(
                    Keys.getOrAdd("new scheduler entry"),
                    conf,
                    IOC.resolve(Keys.getOrAdd("query sensors scheduler storage"))
            );

            return (T) new QuerySensorHandle(entry);
        } catch (ChangeValueException | InvalidArgumentException | ResolutionException e) {
            throw new ResolveDependencyStrategyException(e);
        }
    }

    public  QuerySensorCreationStrategy();

}