-package org.simantics.scl.compiler.environment;\r
-\r
-import java.util.Map;\r
-\r
-import org.simantics.scl.compiler.environment.NamespaceImpl.ModuleImport;\r
-\r
-import gnu.trove.map.hash.THashMap;\r
-\r
-public class NamespaceSpec {\r
- public final THashMap<String, NamespaceSpec> namespaceMap = new THashMap<String, NamespaceSpec>();\r
- public final THashMap<String, ModuleImport> moduleMap = new THashMap<String, ModuleImport>();\r
- \r
- public Namespace toNamespace() {\r
- THashMap<String, Namespace> namespaceImplMap = new THashMap<String, Namespace>(namespaceMap.size());\r
- for(Map.Entry<String, NamespaceSpec> entry : namespaceMap.entrySet())\r
- namespaceImplMap.put(entry.getKey(), entry.getValue().toNamespace());\r
- \r
- return new NamespaceImpl(namespaceImplMap, moduleMap.values().toArray(new ModuleImport[moduleMap.size()]));\r
- }\r
- \r
- public NamespaceSpec getNamespace(String name) {\r
- NamespaceSpec result = namespaceMap.get(name);\r
- if(result == null) {\r
- result = new NamespaceSpec();\r
- namespaceMap.put(name, result);\r
- }\r
- return result;\r
- }\r
- \r
- @Override\r
- public String toString() {\r
- StringBuilder b = new StringBuilder();\r
- toString(b);\r
- return b.toString();\r
- }\r
-\r
- private void toString(StringBuilder b) {\r
- b.append('[');\r
- boolean first = true;\r
- for(String name : moduleMap.keySet()) {\r
- if(first)\r
- first = false;\r
- else\r
- b.append(", ");\r
- b.append(name);\r
- }\r
- b.append("]{");\r
- first = true;\r
- for(Map.Entry<String, NamespaceSpec> entry : namespaceMap.entrySet()) {\r
- if(first)\r
- first = false;\r
- else\r
- b.append(", ");\r
- b.append(entry.getKey());\r
- b.append('=');\r
- entry.getValue().toString(b);\r
- }\r
- b.append('}');\r
- }\r
-}\r
+package org.simantics.scl.compiler.environment;
+
+import java.util.Map;
+
+import org.simantics.scl.compiler.environment.NamespaceImpl.ModuleImport;
+
+import gnu.trove.map.hash.THashMap;
+
+public class NamespaceSpec {
+ public final THashMap<String, NamespaceSpec> namespaceMap = new THashMap<String, NamespaceSpec>();
+ public final THashMap<String, ModuleImport> moduleMap = new THashMap<String, ModuleImport>();
+
+ public Namespace toNamespace() {
+ THashMap<String, Namespace> namespaceImplMap = new THashMap<String, Namespace>(namespaceMap.size());
+ for(Map.Entry<String, NamespaceSpec> entry : namespaceMap.entrySet())
+ namespaceImplMap.put(entry.getKey(), entry.getValue().toNamespace());
+
+ return new NamespaceImpl(namespaceImplMap, moduleMap.values().toArray(new ModuleImport[moduleMap.size()]));
+ }
+
+ public NamespaceSpec getNamespace(String name) {
+ NamespaceSpec result = namespaceMap.get(name);
+ if(result == null) {
+ result = new NamespaceSpec();
+ namespaceMap.put(name, result);
+ }
+ return result;
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder();
+ toString(b);
+ return b.toString();
+ }
+
+ private void toString(StringBuilder b) {
+ b.append('[');
+ boolean first = true;
+ for(String name : moduleMap.keySet()) {
+ if(first)
+ first = false;
+ else
+ b.append(", ");
+ b.append(name);
+ }
+ b.append("]{");
+ first = true;
+ for(Map.Entry<String, NamespaceSpec> entry : namespaceMap.entrySet()) {
+ if(first)
+ first = false;
+ else
+ b.append(", ");
+ b.append(entry.getKey());
+ b.append('=');
+ entry.getValue().toString(b);
+ }
+ b.append('}');
+ }
+}