96 lines
3.5 KiB
Java
96 lines
3.5 KiB
Java
/*
|
|
* Decompiled with CFR 0.152.
|
|
*/
|
|
package com.tridium.sys.module;
|
|
|
|
import com.tridium.asm.Buffer;
|
|
import com.tridium.sys.module.ModuleClassLoader;
|
|
import com.tridium.sys.module.NModule;
|
|
import com.tridium.sys.schema.SyntheticCompiler;
|
|
import javax.baja.sys.Sys;
|
|
import javax.baja.util.BTypeSpec;
|
|
|
|
public class SyntheticModuleClassLoader
|
|
extends ModuleClassLoader {
|
|
public Class loadAutoClass(String string, Buffer buffer) throws ClassNotFoundException {
|
|
return super.loadAutoClass(string, buffer);
|
|
}
|
|
|
|
public Class ndefineClass(String string, byte[] byArray, int n, int n2) {
|
|
return super.defineClass(string, byArray, n, n2, this.codeSource);
|
|
}
|
|
|
|
/*
|
|
* Unable to fully structure code
|
|
*/
|
|
protected Class nfind(String var1_1, boolean var2_2) {
|
|
block13: {
|
|
if (var1_1.startsWith("auto.")) {
|
|
block12: {
|
|
try {
|
|
return super.nfind(var1_1, var2_2);
|
|
}
|
|
catch (NoClassDefFoundError var3_3) {
|
|
if (this.module.depends == null) break block12;
|
|
var4_6 = 0;
|
|
** while (var4_6 < this.module.depends.length)
|
|
}
|
|
lbl-1000:
|
|
// 1 sources
|
|
|
|
{
|
|
var5_9 = this.module.depends[var4_6].resolution;
|
|
if (var5_9.isSynthetic() && !var5_9.isSystemJar && (var6_12 = var5_9.classLoader.nload(var1_1, var2_2)) != null) {
|
|
return var6_12;
|
|
}
|
|
++var4_6;
|
|
continue;
|
|
}
|
|
}
|
|
throw var3_3;
|
|
}
|
|
try {
|
|
return this.getParent().loadClass(var1_1);
|
|
}
|
|
catch (ClassNotFoundException v0) {
|
|
if (this.module.getTypeClassName(var1_1.substring(var1_1.lastIndexOf(46) + 2)) != null) {
|
|
var3_4 = BTypeSpec.make(this.module.getModuleName(), var1_1.substring(var1_1.lastIndexOf(46) + 2));
|
|
var4_7 = Sys.getRegistry().getType(var3_4.toString());
|
|
var5_10 = var4_7.getInterfaces();
|
|
var6_13 = var4_7.isAbstract();
|
|
var7_14 = var4_7.isFinal();
|
|
var8_15 = var4_7.getSuperType();
|
|
var9_16 = SyntheticCompiler.compile(var3_4, var8_15, var5_10, var6_13, var7_14, false);
|
|
SyntheticModuleClassLoader.addClassToSpy(this.module.name, var1_1, var9_16.count);
|
|
var10_17 = this.defineClass(var1_1, var9_16.bytes, 0, var9_16.count, this.codeSource);
|
|
try {
|
|
Class.forName(var10_17.getName(), true, var10_17.getClassLoader());
|
|
}
|
|
catch (ClassNotFoundException v1) {}
|
|
return var10_17;
|
|
}
|
|
if (this.module.depends == null) break block13;
|
|
var3_5 = 0;
|
|
** while (var3_5 < this.module.depends.length)
|
|
}
|
|
lbl-1000:
|
|
// 1 sources
|
|
|
|
{
|
|
var4_8 = this.module.depends[var3_5].resolution;
|
|
if (!var4_8.isSystemJar && (var5_11 = var4_8.classLoader.nload(var1_1, var2_2)) != null) {
|
|
return var5_11;
|
|
}
|
|
++var3_5;
|
|
continue;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public SyntheticModuleClassLoader(NModule nModule) {
|
|
super(nModule);
|
|
}
|
|
}
|
|
|