private ResourceLoader fromInternal()

in java/main/src/main/java/com/epam/deltix/utilities/ResourceLoader.java [1041:1073]


    private ResourceLoader fromInternal(final Class<?> clazz, final String resourcePathTemplate, final boolean substituteVariables) {

        // Set resource path and perform basic validation
        if (null == resourcePathTemplate)
            throw new NullPointerException("resourcePathTemplate");

        if (null != _resourcePattern)
            throw argException("Resource path is already specified!");

        if (null != _class) {
            if (null != clazz && clazz != _class)
                throw new IllegalArgumentException(fmt("Parent class is already set: %s", _class));
        } else {
            if (null != clazz)
                _class = clazz;
            else {
                final Class<?> stackClass = VariablesMapper.tryDetectCaller();
                _class = stackClass != null ? stackClass : this.getClass();
            }
        }

        _resourcePathTemplate = resourcePathTemplate;

        String resPattern = substituteVariables
                ? getVariablesMapper().substitute(resourcePathTemplate) : resourcePathTemplate;

        if (!Pattern.matches("\\w+:.+", resPattern))
            resPattern = "glob:" + resPattern;
        _resourcePatternStr = resPattern;
        _resourcePattern = FileSystems.getDefault().getPathMatcher(resPattern);

        return this;
    }