This commit is contained in:
Joel Dice
2007-09-13 21:59:39 -06:00
parent 2ca75d50e6
commit bb520e4ef9
4 changed files with 31 additions and 10 deletions

View File

@ -6,6 +6,8 @@ import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.lang.reflect.InvocationTargetException;
import java.io.InputStream;
import java.io.IOException;
import java.net.URL;
public final class Class <T> {
private static final int PrimitiveFlag = 1 << 4;
@ -367,10 +369,23 @@ public final class Class <T> {
return (vmFlags & PrimitiveFlag) != 0;
}
public InputStream getResourceAsStream(String path) {
public URL getResource(String path) {
if (! path.startsWith("/")) {
path = new String(name, 0, name.length - 1, false) + "/" + path;
String name = new String(this.name, 0, this.name.length - 1, false);
int index = name.lastIndexOf('/');
if (index >= 0) {
path = name.substring(0, index) + "/" + path;
}
}
return getClassLoader().getResource(path);
}
public InputStream getResourceAsStream(String path) {
URL url = getResource(path);
try {
return (url == null ? null : url.openStream());
} catch (IOException e) {
return null;
}
return getClassLoader().getResourceAsStream(path);
}
}

View File

@ -53,15 +53,21 @@ public abstract class ResourceBundle {
{
try {
ResourceBundle b = find(name, loader, null);
if (locale.getLanguage() != null) {
name = name + "_" + locale.getLanguage();
b = find(name, loader, b);
ResourceBundle b2 = find(name, loader, b);
if (b2 != null) b = b2;
if (locale.getCountry() != null) {
name = name + "_" + locale.getCountry();
b = find(name, loader, b);
b2 = find(name, loader, b);
if (b2 != null) b = b2;
if (locale.getVariant() != null) {
name = name + "_" + locale.getVariant();
b = find(name, loader, b);
b2 = find(name, loader, b);
if (b2 != null) b = b2;
}
}
}