package org.simantics.scl.compiler.source; import org.simantics.scl.compiler.errors.Failable; import org.simantics.scl.compiler.errors.Success; import org.simantics.scl.compiler.module.Module; import org.simantics.scl.compiler.module.options.ModuleCompilationOptions; import org.simantics.scl.compiler.module.repository.ModuleRepository; import org.simantics.scl.compiler.module.repository.UpdateListener; public class PrecompiledModuleSource implements ModuleSource { private final Module module; private final double priority; public PrecompiledModuleSource(Module module, double priority) { this.module = module; this.priority = priority; } public PrecompiledModuleSource(Module module) { this(module, 0.0); } @Override public String getModuleName() { return module.getName(); } @Override public Failable compileModule(ModuleRepository environment, UpdateListener listener, ModuleCompilationOptions options) { return new Success(module); } @Override public ClassLoader getClassLoader() { return getClass().getClassLoader(); } @Override public double getPriority() { return priority; } @Override public String toString() { return "PrecompiledModuleSource(" + module.getName() + ")"; } }