]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/environment/Namespace.java
New SCL completion implementation
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / environment / Namespace.java
index 921b9029d2d2e7e028e8a1a746908f5305ef6324..792734c5d80255ce42b6b073fdafb4dfe74db42c 100644 (file)
@@ -1,11 +1,12 @@
 package org.simantics.scl.compiler.environment;
 
+import java.util.Collection;
 import java.util.function.Consumer;
 
+import org.simantics.scl.compiler.elaboration.chr.CHRRuleset;
 import org.simantics.scl.compiler.elaboration.modules.SCLValue;
-import org.simantics.scl.compiler.elaboration.modules.TypeAlias;
 import org.simantics.scl.compiler.elaboration.modules.TypeClass;
-import org.simantics.scl.compiler.elaboration.modules.TypeConstructor;
+import org.simantics.scl.compiler.elaboration.modules.TypeDescriptor;
 import org.simantics.scl.compiler.elaboration.relations.SCLEntityType;
 import org.simantics.scl.compiler.elaboration.relations.SCLRelation;
 import org.simantics.scl.compiler.elaboration.rules.MappingRelation;
@@ -24,6 +25,8 @@ public interface Namespace {
         */
     Namespace getNamespace(String name);
     
+    Collection<String> getNamespaces();
+    
     /**
      * Get an SCLValue for a given name. The same instance is returned on each call.
      * @param name  the name of a defined value
@@ -52,13 +55,13 @@ public interface Namespace {
     SCLEntityType getEntityType(String name) throws AmbiguousNameException;
     
     /**
-     * Get a TypeConstructor for a given name. The same instance is returned on each call.
+     * Get a TypeDescriptor for a given name. The same instance is returned on each call.
      * @param name  the name of a defined entity type
-     * @return  The return value is a TypeConstructor provided by any source included in the namespace,
+     * @return  The return value is a TypeDescriptor provided by any source included in the namespace,
      *          or null if the name is not found.
      * @exception  AmbiguousNameException  if the name matches with multiple imported modules. 
      */
-    TypeConstructor getTypeConstructor(String name) throws AmbiguousNameException;
+    TypeDescriptor getTypeDescriptor(String name) throws AmbiguousNameException;
     
     /**
      * Get an EffectConstructor for a given name. The same instance is returned on each call.
@@ -69,6 +72,8 @@ public interface Namespace {
      */
     EffectConstructor getEffectConstructor(String name) throws AmbiguousNameException;
     
+    CHRRuleset getRuleset(String name) throws AmbiguousNameException;
+    
     /**
      * Get a TypeClass for a given name. The same instance is returned on each call.
      * @param name  the name of a defined entity type
@@ -78,15 +83,6 @@ public interface Namespace {
      */
     TypeClass getTypeClass(String name) throws AmbiguousNameException;
     
-    /**
-     * Get a TypeAlias for a given name. The same instance is returned on each call.
-     * @param name  the name of a defined entity type
-     * @return  The return value is a TypeAlias provided by any source included in the namespace,
-     *          or null if the name is not found.
-     * @exception  AmbiguousNameException  if the name matches with multiple imported modules. 
-     */
-    TypeAlias getTypeAlias(String name) throws AmbiguousNameException;
-    
     TransformationRule getRule(String name) throws AmbiguousNameException;
     MappingRelation getMappingRelation(String name) throws AmbiguousNameException;