package jef.tools.resource;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import jef.tools.IOUtils;
public abstract class AResourceLoader implements ResourceLoader{
public InputStream getResourceAsStream(String name){
URL u= getResource(name);
try {
return u==null?null:u.openStream();
} catch (IOException e) {
throw new IllegalStateException(e);
}
}
protected File toFile(URL url){
try {
return new File(url.toURI());
} catch (URISyntaxException e) {
throw new IllegalArgumentException(e.getMessage());
}
}
protected URL toURL(File file){
try {
return file.toURI().toURL();
} catch (MalformedURLException e) {
throw new IllegalArgumentException(e.getMessage());
}
}
public BufferedReader getResourceAsReader(String name,String charset){
URL u= getResource(name);
try {
return u==null?null:IOUtils.getReader(u.openStream(), charset);
} catch (IOException e) {
throw new IllegalStateException(e);
}
}
public Resource getResourceEx(String name) {
URL url=getResource(name);
return url==null?null:Resource.getResource(url);
}
public List<Resource> getgetResourcesEx(String name) {
List<URL> urls= getResources(name);;
List<Resource> result=new ArrayList<Resource>(urls.size());
for(URL u:urls){
result.add(Resource.getResource(u));
}
return result;
}
}