import org.simantics.scl.compiler.environment.GlobalOnlyEnvironment;
import org.simantics.scl.compiler.internal.codegen.types.JavaTypeTranslator;
import org.simantics.scl.compiler.internal.codegen.utils.JavaNamingPolicy;
+import org.simantics.scl.compiler.internal.codegen.utils.LoggingOutputStream;
+import org.simantics.scl.compiler.internal.codegen.utils.LoggingOutputStream.LogLevel;
import org.simantics.scl.compiler.internal.codegen.utils.TransientClassBuilder;
import org.simantics.scl.compiler.internal.decompilation.DecompilerFactory;
import org.simantics.scl.compiler.internal.decompilation.IDecompiler;
public synchronized void addClass(String name, byte[] class_) {
if(TRACE_CLASS_CREATION)
- System.out.println("addClass " + name + " (" + class_.length + " bytes)");
+ LOGGER.info("addClass " + name + " (" + class_.length + " bytes)");
if(VALIDATE_CLASS_NAMES)
validateClassName(name);
localClasses.put(name, class_);
public synchronized void addClasses(Map<String, byte[]> classes) {
if(TRACE_CLASS_CREATION)
for(String name : classes.keySet())
- System.out.println("addClass " + name + " (" + classes.get(name).length + " bytes)");
+ LOGGER.info("addClass " + name + " (" + classes.get(name).length + " bytes)");
if(VALIDATE_CLASS_NAMES)
for(String name : classes.keySet())
validateClassName(name);
}
private void validateClassName(String name) {
- //System.out.println(name);
+ //LOGGER.info(name);
/*if(!name.startsWith(SCL_PACKAGE_PREFIX) || !extractClassLoaderId(name).equals(moduleName))
throw new IllegalArgumentException("Class name " + name + " does not start with '" +
SCL_PACKAGE_PREFIX + moduleName + "$'.");
}
private Class<?> getClass(String name) throws ClassNotFoundException {
- //System.out.println("getClass " + name);
+ //LOGGER.info("getClass " + name);
// If the class is not generated from SCL, use parent class loader
if(!name.startsWith(SCL_PACKAGE_PREFIX)) {
}
public Module getModule(String moduleName) {
- //System.out.println("ModuleClassLoader.getModule(" + moduleName + ")");
+ //LOGGER.info("ModuleClassLoader.getModule(" + moduleName + ")");
if(moduleName.equals(this.moduleName))
return module;
else {
IDecompiler decompiler = DecompilerFactory.getDecompiler();
if(decompiler == null)
return;
- decompiler.decompile(this, className, new OutputStreamWriter(System.out));
+ decompiler.decompile(this, className, new OutputStreamWriter(new LoggingOutputStream(LOGGER, LogLevel.INFO)));
}
}