
com.draagon.meta.loader.file.URIFileMetaDataSources Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of metaobjects-core Show documentation
Show all versions of metaobjects-core Show documentation
MetaObjects for Model-driven development - Core Libraries
The newest version!
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 URIFileMetaDataSources extends FileMetaDataSources {
private URIModel currentModel = null;
public URIFileMetaDataSources(ClassLoader classLoader, URI uri) {
super(classLoader);
currentModel = URIHelper.toURIModel( uri );
read( currentModel.getUriSource() );
}
public URIFileMetaDataSources(ClassLoader classLoader, List uriSources ) {
super(classLoader);
for ( URI uri : uriSources ) {
currentModel = URIHelper.toURIModel( uri );
read( currentModel.getUriSource() );
}
}
/**
* Loads all the classes specified in the Filename
*/
@Override
protected InputStream getInputStreamForFilename(String filename) throws MetaDataException {
// LOAD THE FILE
if (filename == null) {
throw new NullPointerException("The MetaData file was null on URI: "+currentModel.toURI());
}
try {
List classLoaders = Arrays.asList(
getClass().getClassLoader(),
getLoaderClassLoader(),
ClassLoader.getSystemClassLoader());
return URIHelper.getInputStream( classLoaders, currentModel );
}
catch (IOException e) {
throw new MetaDataException( "Could not open InputStream for URI: "+currentModel.toURI());
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy