class FullObjectCreatorResolutionStrategy implements IResolveDependencyStrategy {

    @Override
    public <T> T resolve(Object... args) throws ResolveDependencyStrategyException {
        IObject config = (IObject) args[0];

        try {
            IReceiverObjectCreator creator = null;
            List<IObject> filtersList = (List) config.getValue(filtersFieldName);

            for (IObject fDesc : filtersList) {
                creator = IOC.resolve(
                        IOC.resolve(
                                IOC.getKeyForKeyStorage(),
                                fDesc.getValue(dependencyFieldName)
                        ),
                        creator,
                        fDesc,
                        config
                );
            }

            return (T) creator;
        } catch (InvalidArgumentException | ReadValueException | ResolutionException e) {
            throw new ResolveDependencyStrategyException(e);
        }
    }

    public  FullObjectCreatorResolutionStrategy();

}