class MapToIObjectResolveDependencyStrategy implements IResolveDependencyStrategy {

    @Override
    public <T> T resolve(final Object... args) throws ResolveDependencyStrategyException {

        try {
            Map<String, Object> stringObjectMap = (Map<String, Object>) args[0];
            Map<IFieldName, Object> fieldNameObjectMap = new HashMap<>();
            for (String key: stringObjectMap.keySet()) {
                IFieldName fieldName = IOC.resolve(Keys.getOrAdd("info.smart_tools.smartactors.iobject.ifield_name.IFieldName"), key);
                fieldNameObjectMap.put(fieldName, stringObjectMap.get(key));
            }

            return (T) new DSObject(fieldNameObjectMap);
        } catch (Exception e) {
            throw new ResolveDependencyStrategyException("Can't create IObject from Map.", e);
        }
    }

}