1 package org.simantics.scl.compiler.environment.specification;
3 import java.util.ArrayList;
6 import org.simantics.scl.compiler.module.ImportDeclaration;
7 import org.simantics.scl.runtime.tuple.Tuple2;
9 public class EnvironmentSpecification {
10 public final ArrayList<ImportDeclaration> imports = new ArrayList<ImportDeclaration>();
12 public void importModule(String moduleName, String localName) {
13 imports.add(new ImportDeclaration(moduleName, localName));
16 public static EnvironmentSpecification of(String ... strings) {
17 if(strings.length % 2 != 0)
18 throw new IllegalArgumentException("Expected even number of parameters.");
19 EnvironmentSpecification spec = new EnvironmentSpecification();
20 for(int i=0;i<strings.length;i+=2)
21 spec.importModule(strings[i], strings[i+1]);
25 public static EnvironmentSpecification fromList(List<Tuple2> imports) {
26 EnvironmentSpecification spec = new EnvironmentSpecification();
27 for(Tuple2 tuple : imports)
28 spec.importModule((String)tuple.c0, (String)tuple.c1);
33 public int hashCode() {
36 result = prime * result + ((imports == null) ? 0 : imports.hashCode());
41 public boolean equals(Object obj) {
46 if (getClass() != obj.getClass())
48 EnvironmentSpecification other = (EnvironmentSpecification) obj;
49 if (imports == null) {
50 if (other.imports != null)
52 } else if (!imports.equals(other.imports))