Methods Summary |
---|
public java.lang.String | getDirectory()Returns the directory containing the resource, or null if the resource
isn't directly available on the filesystem. This value can be used to
locate the config file on disk or write files in the same directory.
if (file != null) {
return file.getParent();
}
else if (url != null) {
return null;
}
return null;
|
public java.io.InputStream | getInputStream()Returns an input stream to read the resource contents.
if (file != null) {
return new BufferedInputStream(new FileInputStream(file));
}
else if (url != null) {
return new BufferedInputStream(url.openStream());
}
return null;
|
public java.lang.String | getName()Returns the resource name, as passed to the constructor.
return name;
|
public long | lastModified()Returns when the resource was last modified. If the resource was found
using a URL, this method will only work if the URL connection supports
last modified information. If there's no support, Long.MAX_VALUE is
returned. Perhaps this should return -1 but we return MAX_VALUE on
the assumption that if you can't determine the time, assume it's
maximally new.
if (file != null) {
return file.lastModified();
}
else if (url != null) {
try {
return url.openConnection().getLastModified(); // hail mary
}
catch (IOException e) { return Long.MAX_VALUE; }
}
return 0; // can't happen
|
private static java.io.File | searchDirectories(java.lang.String[] paths, java.lang.String filename)
SecurityException exception = null;
for (int i = 0; i < paths.length; i++) {
try {
File file = new File(paths[i], filename);
if (file.exists() && !file.isDirectory()) {
return file;
}
}
catch (SecurityException e) {
// Security exceptions can usually be ignored, but if all attempts
// to find the file fail, then report the (last) security exception.
exception = e;
}
}
// Couldn't find any match
if (exception != null) {
throw exception;
}
else {
return null;
}
|
private static java.lang.String[] | split(java.lang.String str, java.lang.String delim)
// Use a Vector to hold the splittee strings
Vector v = new Vector();
// Use a StringTokenizer to do the splitting
StringTokenizer tokenizer = new StringTokenizer(str, delim);
while (tokenizer.hasMoreTokens()) {
v.addElement(tokenizer.nextToken());
}
String[] ret = new String[v.size()];
v.copyInto(ret);
return ret;
|
public java.lang.String | toString()
return "[Resource: File: " + file + " URL: " + url + "]";
|
private boolean | tryClasspath(java.lang.String filename)
String classpath = System.getProperty("java.class.path");
String[] paths = split(classpath, File.pathSeparator);
file = searchDirectories(paths, filename);
return (file != null);
|
private boolean | tryLoader(java.lang.String name)
name = "/" + name;
URL res = Resource.class.getResource(name);
if (res == null) {
return false;
}
// Try converting from a URL to a File
File resFile = urlToFile(res);
if (resFile != null) {
file = resFile;
}
else {
url = res;
}
return true;
|
private static java.io.File | urlToFile(java.net.URL res)
String externalForm = res.toExternalForm();
if (externalForm.startsWith("file:")) {
return new File(externalForm.substring(5));
}
return null;
|