-package org.simantics.scl.reflection.internal.typeRegistry;\r
-\r
-import gnu.trove.set.hash.THashSet;\r
-\r
-import java.util.List;\r
-import java.util.concurrent.ConcurrentHashMap;\r
-\r
-import org.simantics.scl.compiler.types.TCon;\r
-import org.simantics.scl.compiler.types.Types;\r
-import org.simantics.scl.reflection.TypeNotFoundException;\r
-import org.simantics.scl.reflection.internal.registry.BindingRegistry;\r
-\r
-public class TypeRegistry {\r
- private static final ConcurrentHashMap<TCon, Class<?>> map = \r
- new ConcurrentHashMap<TCon, Class<?>>();\r
- \r
- private static final THashSet<String> builtins = new THashSet<String>();\r
- \r
- static {\r
- map.put(Types.BOOLEAN, Boolean.class); \r
- map.put(Types.BYTE, Byte.class);\r
- map.put(Types.CHARACTER, Character.class);\r
- map.put(Types.SHORT, Short.class);\r
- map.put(Types.INTEGER, Integer.class);\r
- map.put(Types.LONG, Long.class);\r
- map.put(Types.FLOAT, Float.class);\r
- map.put(Types.DOUBLE, Double.class);\r
- map.put(Types.STRING, String.class);\r
- map.put(Types.BYTE_ARRAY, byte[].class);\r
- \r
- map.put(Types.LIST, List.class);\r
- for(int i=0;i<8;++i)\r
- if(i != 1)\r
- try {\r
- map.put(Types.tupleConstructor(i), \r
- Class.forName("org.simantics.scl.runtime.tuple.Tuple" + i));\r
- } catch(ClassNotFoundException e) {\r
- e.printStackTrace();\r
- }\r
- \r
- for(TCon con : map.keySet())\r
- builtins.add(con.name);\r
- }\r
- \r
- public static Class<?> getClass(TCon type) throws TypeNotFoundException {\r
- Class<?> clazz = map.get(type);\r
- if(clazz == null) {\r
- try {\r
- clazz = BindingRegistry.getClass(type);\r
- } catch(TypeNotFoundException e) {\r
- e.printStackTrace();\r
- throw e;\r
- }\r
- map.put(type, clazz);\r
- }\r
- return clazz;\r
- }\r
- \r
- public static boolean isBuiltin(String name) {\r
- return builtins.contains(name);\r
- }\r
-}\r
+package org.simantics.scl.reflection.internal.typeRegistry;
+
+import gnu.trove.set.hash.THashSet;
+
+import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.simantics.scl.compiler.types.TCon;
+import org.simantics.scl.compiler.types.Types;
+import org.simantics.scl.reflection.TypeNotFoundException;
+import org.simantics.scl.reflection.internal.registry.BindingRegistry;
+
+public class TypeRegistry {
+ private static final ConcurrentHashMap<TCon, Class<?>> map =
+ new ConcurrentHashMap<TCon, Class<?>>();
+
+ private static final THashSet<String> builtins = new THashSet<String>();
+
+ static {
+ map.put(Types.BOOLEAN, Boolean.class);
+ map.put(Types.BYTE, Byte.class);
+ map.put(Types.CHARACTER, Character.class);
+ map.put(Types.SHORT, Short.class);
+ map.put(Types.INTEGER, Integer.class);
+ map.put(Types.LONG, Long.class);
+ map.put(Types.FLOAT, Float.class);
+ map.put(Types.DOUBLE, Double.class);
+ map.put(Types.STRING, String.class);
+ map.put(Types.BYTE_ARRAY, byte[].class);
+
+ map.put(Types.LIST, List.class);
+ for(int i=0;i<8;++i)
+ if(i != 1)
+ try {
+ map.put(Types.tupleConstructor(i),
+ Class.forName("org.simantics.scl.runtime.tuple.Tuple" + i));
+ } catch(ClassNotFoundException e) {
+ e.printStackTrace();
+ }
+
+ for(TCon con : map.keySet())
+ builtins.add(con.name);
+ }
+
+ public static Class<?> getClass(TCon type) throws TypeNotFoundException {
+ Class<?> clazz = map.get(type);
+ if(clazz == null) {
+ try {
+ clazz = BindingRegistry.getClass(type);
+ } catch(TypeNotFoundException e) {
+ e.printStackTrace();
+ throw e;
+ }
+ map.put(type, clazz);
+ }
+ return clazz;
+ }
+
+ public static boolean isBuiltin(String name) {
+ return builtins.contains(name);
+ }
+}