-package org.simantics.scl.compiler.environment;\r
-\r
-import java.util.ArrayList;\r
-import java.util.Arrays;\r
-\r
-import org.simantics.scl.compiler.module.ConcreteModule;\r
-import org.simantics.scl.compiler.module.ImportDeclaration;\r
-import org.simantics.scl.compiler.module.repository.ImportFailureException;\r
-import org.simantics.scl.compiler.module.repository.ModuleRepository;\r
-import org.simantics.scl.compiler.module.repository.UpdateListener;\r
-\r
-public class EnvironmentFactoryImpl implements EnvironmentFactory {\r
-\r
- private final ModuleRepository environment;\r
- private final ImportDeclaration[] builtinImports;\r
- private final UpdateListener listener;\r
- \r
- public EnvironmentFactoryImpl(ModuleRepository environment,\r
- ImportDeclaration[] builtinImports, UpdateListener listener) {\r
- this.environment = environment;\r
- this.builtinImports = builtinImports;\r
- this.listener = listener;\r
- }\r
-\r
- @Override\r
- public Environment createEnvironment(ImportDeclaration[] imports) throws ImportFailureException {\r
- ArrayList<ImportDeclaration> acceptedBuiltinImports = \r
- new ArrayList<ImportDeclaration>(builtinImports.length);\r
- loop: for(ImportDeclaration builtinImport : builtinImports) {\r
- for(ImportDeclaration decl : imports)\r
- if(decl.moduleName.equals(builtinImport.moduleName) &&\r
- decl.localName.equals(builtinImport.localName))\r
- continue loop;\r
- acceptedBuiltinImports.add(builtinImport);\r
- }\r
- ImportDeclaration[] is = Arrays.copyOf(\r
- acceptedBuiltinImports.toArray(new ImportDeclaration[acceptedBuiltinImports.size()]),\r
- acceptedBuiltinImports.size() + imports.length);\r
- System.arraycopy(imports, 0, is, acceptedBuiltinImports.size(), imports.length);\r
- return environment.createEnvironment(is, listener);\r
- }\r
- \r
- @Override\r
- public void addBuiltinDependencies(ConcreteModule module) {\r
- for(ImportDeclaration decl : builtinImports) {\r
- ImportDeclaration decl2 = new ImportDeclaration(decl.moduleName, null);\r
- module.addDependency(decl2);\r
- }\r
- }\r
-\r
-}\r
+package org.simantics.scl.compiler.environment;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+
+import org.simantics.scl.compiler.module.ConcreteModule;
+import org.simantics.scl.compiler.module.ImportDeclaration;
+import org.simantics.scl.compiler.module.repository.ImportFailureException;
+import org.simantics.scl.compiler.module.repository.ModuleRepository;
+import org.simantics.scl.compiler.module.repository.UpdateListener;
+
+public class EnvironmentFactoryImpl implements EnvironmentFactory {
+
+ private final ModuleRepository environment;
+ private final ImportDeclaration[] builtinImports;
+ private final UpdateListener listener;
+
+ public EnvironmentFactoryImpl(ModuleRepository environment,
+ ImportDeclaration[] builtinImports, UpdateListener listener) {
+ this.environment = environment;
+ this.builtinImports = builtinImports;
+ this.listener = listener;
+ }
+
+ @Override
+ public Environment createEnvironment(ImportDeclaration[] imports) throws ImportFailureException {
+ ArrayList<ImportDeclaration> acceptedBuiltinImports =
+ new ArrayList<ImportDeclaration>(builtinImports.length);
+ loop: for(ImportDeclaration builtinImport : builtinImports) {
+ for(ImportDeclaration decl : imports)
+ if(decl.moduleName.equals(builtinImport.moduleName) &&
+ decl.localName.equals(builtinImport.localName))
+ continue loop;
+ acceptedBuiltinImports.add(builtinImport);
+ }
+ ImportDeclaration[] is = Arrays.copyOf(
+ acceptedBuiltinImports.toArray(new ImportDeclaration[acceptedBuiltinImports.size()]),
+ acceptedBuiltinImports.size() + imports.length);
+ System.arraycopy(imports, 0, is, acceptedBuiltinImports.size(), imports.length);
+ return environment.createEnvironment(is, listener);
+ }
+
+ @Override
+ public void addBuiltinDependencies(ConcreteModule module) {
+ for(ImportDeclaration decl : builtinImports) {
+ ImportDeclaration decl2 = new ImportDeclaration(decl.moduleName, null);
+ module.addDependency(decl2);
+ }
+ }
+
+}