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

com.draagon.meta.loader.file.URIMetaDataSources Maven / Gradle / Ivy

package com.draagon.meta.loader.file;

import com.draagon.meta.MetaDataException;
import com.draagon.meta.loader.uri.URIHelper;
import com.draagon.meta.loader.uri.URIModel;

import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.util.Arrays;
import java.util.List;

/**
 * Handles loading
 *
 * Created by dmealing on 11/30/16.
 */
public class URIMetaDataSources extends FileMetaDataSources {

    private URIModel currentModel = null;

    public URIMetaDataSources(URI uri) {
        currentModel = URIHelper.toURIModel( uri );
        read( currentModel.getUriSource() );
    }

    public URIMetaDataSources(List uriSources ) {
        for ( URI uri : uriSources ) {
            currentModel = URIHelper.toURIModel( uri );
            read( currentModel.getUriSource() );
        }
    }

    /**
     * Loads all the classes specified in the Filename
     */
    protected InputStream getInputStreamForFilename(String filename) throws MetaDataException {

        // Set Source Directory if it's on the Model
        //String sourceDir = currentModel.getUriArg(URIHelper.URI_ARG_SOURCEDIR);
        //if ( sourceDir != null ) {
        //    setSourceDir( sourceDir );
            // Call the super method
            //super.getInputStreamForFilename(filename);
        //}
        //else {
        //    setSourceDir(null);
        //}

        // LOAD THE FILE
        if (filename == null) {
            throw new NullPointerException("The MetaData file was null on URI: "+currentModel.toURI());
        }

        try {
            List classLoaders = Arrays.asList( getClassLoader(), ClassLoader.getSystemClassLoader());
            return URIHelper.getInputStream( classLoaders, currentModel );
        } catch (IOException e) {
            throw new MetaDataException( "Could not open InputStream for URI: "+currentModel.toURI());
        }
    }

    /** Returns the class loader */
    public ClassLoader getClassLoader() {
        return getClass().getClassLoader();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy