package org.simantics.scl.compiler.tests; import org.simantics.scl.compiler.environment.Environment; import org.simantics.scl.compiler.environment.specification.EnvironmentSpecification; import org.simantics.scl.compiler.module.repository.ImportFailureException; import org.simantics.scl.compiler.module.repository.ModuleRepository; import org.simantics.scl.compiler.source.repository.CompositeModuleSourceRepository; import org.simantics.scl.compiler.source.repository.SourceRepositories; import org.simantics.scl.osgi.SCLOsgi; public class InitialRepository { public static final boolean NO_PRELUDE = false; private static ModuleRepository MODULE_REPOSITORY1 = new ModuleRepository( new CompositeModuleSourceRepository( SourceRepositories.BUILTIN_SOURCE_REPOSITORY, SourceRepositories.PRELUDE_SOURCE_REPOSITORY )); public static EnvironmentSpecification DEFAULT_ENVIRONMENT_SPECIFICATION = new EnvironmentSpecification(); static { DEFAULT_ENVIRONMENT_SPECIFICATION.importModule("Builtin", ""); DEFAULT_ENVIRONMENT_SPECIFICATION.importModule("Prelude", ""); } public static ModuleRepository getInitialRepository() { if(NO_PRELUDE) return new ModuleRepository(SourceRepositories.BUILTIN_SOURCE_REPOSITORY); else if(MODULE_REPOSITORY1.getModule("Prelude").didSucceed()) return MODULE_REPOSITORY1; else return SCLOsgi.MODULE_REPOSITORY; } public static Environment getDefaultEnvironment() throws ImportFailureException { return getInitialRepository().createEnvironment(DEFAULT_ENVIRONMENT_SPECIFICATION, null); } }