All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.openl.rules.ruleservice.conf.ResourceLoaderImpl Maven / Gradle / Ivy

package org.openl.rules.ruleservice.conf;

import java.io.IOException;
import java.io.InputStream;
import java.util.Objects;

import org.openl.rules.common.ProjectException;
import org.openl.rules.project.abstraction.IProject;
import org.openl.rules.project.abstraction.IProjectArtefact;
import org.openl.rules.project.abstraction.IProjectResource;
import org.openl.rules.ruleservice.core.Resource;
import org.openl.rules.ruleservice.core.ResourceLoader;

class ResourceLoaderImpl implements ResourceLoader {

    private final IProject project;

    public ResourceLoaderImpl(IProject project) {
        this.project = Objects.requireNonNull(project, "project cannot be null");
    }

    @Override
    public Resource getResource(String name) {
        try {
            IProjectArtefact artefact = project.getArtefact(name);
            if (artefact instanceof IProjectResource) {
                final IProjectResource resource = (IProjectResource) artefact;
                return new Resource() {
                    @Override
                    public InputStream getResourceAsStream() throws IOException {
                        try {
                            return resource.getContent();
                        } catch (ProjectException e) {
                            throw new IOException(e);
                        }
                    }

                    @Override
                    public boolean exists() {
                        return true;
                    }
                };
            }
        } catch (Exception e) {
            return NOT_FOUNT_RESOURCE;
        }
        return NOT_FOUNT_RESOURCE;
    }

    private static final Resource NOT_FOUNT_RESOURCE = new Resource() {
        @Override
        public boolean exists() {
            return false;
        }

        @Override
        public InputStream getResourceAsStream() throws IOException {
            throw new IOException("Resource is not found.");
        }
    };
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy