in boot/src/main/java/org/netbeans/html/boot/impl/FnUtils.java [662:740]
protected Class<?> findClass(String name) throws ClassNotFoundException {
if (name.startsWith("javafx")) {
return Class.forName(name);
}
if (name.startsWith("netscape")) {
return Class.forName(name);
}
if (name.startsWith("com.sun")) {
return Class.forName(name);
}
if (name.startsWith("org.netbeans.html.context.spi")) {
return Class.forName(name);
}
if (name.startsWith("net.java.html.BrwsrCtx")) {
return Class.forName(name);
}
if (name.equals(JsClassLoader.class.getName())) {
return JsClassLoader.class;
}
if (name.equals(Fn.class.getName())) {
return Fn.class;
}
if (name.equals(Fn.Presenter.class.getName())) {
return Fn.Presenter.class;
}
if (name.equals(Fn.Ref.class.getName())) {
return Fn.Ref.class;
}
if (name.equals(Fn.Promise.class.getName())) {
return Fn.Promise.class;
}
if (name.equals(Fn.ToJavaScript.class.getName())) {
return Fn.ToJavaScript.class;
}
if (name.equals(Fn.FromJavaScript.class.getName())) {
return Fn.FromJavaScript.class;
}
if (name.equals(FnUtils.class.getName())) {
return FnUtils.class;
}
if (
name.equals("org.netbeans.html.boot.spi.Fn") ||
name.equals("org.netbeans.html.boot.impl.FnUtils") ||
name.equals("org.netbeans.html.boot.impl.FnContext")
) {
return Class.forName(name);
}
URL u = findResource(name.replace('.', '/') + ".class");
if (u != null) {
InputStream is = null;
try {
is = u.openStream();
byte[] arr = new byte[is.available()];
int len = 0;
while (len < arr.length) {
int read = is.read(arr, len, arr.length - len);
if (read == -1) {
throw new IOException("Can't read " + u);
}
len += read;
}
is.close();
is = null;
if (JsPkgCache.process(this, name)) {
arr = FnUtils.transform(arr, this);
}
return defineClass(name, arr, 0, arr.length);
} catch (IOException ex) {
throw new ClassNotFoundException("Can't load " + name, ex);
} finally {
try {
if (is != null) is.close();
} catch (IOException ex) {
throw new ClassNotFoundException(null, ex);
}
}
}
return super.findClass(name);
}