/* * 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); } }