aboutsummaryrefslogtreecommitdiffstats
path: root/jython-tosca-parser/src/main/java/org/openecomp/sdc/toscaparser/utils/PythonType.java
diff options
context:
space:
mode:
Diffstat (limited to 'jython-tosca-parser/src/main/java/org/openecomp/sdc/toscaparser/utils/PythonType.java')
-rw-r--r--jython-tosca-parser/src/main/java/org/openecomp/sdc/toscaparser/utils/PythonType.java47
1 files changed, 47 insertions, 0 deletions
diff --git a/jython-tosca-parser/src/main/java/org/openecomp/sdc/toscaparser/utils/PythonType.java b/jython-tosca-parser/src/main/java/org/openecomp/sdc/toscaparser/utils/PythonType.java
new file mode 100644
index 0000000..f4d6939
--- /dev/null
+++ b/jython-tosca-parser/src/main/java/org/openecomp/sdc/toscaparser/utils/PythonType.java
@@ -0,0 +1,47 @@
+package org.openecomp.sdc.toscaparser.utils;
+
+import static java.util.stream.Collectors.toMap;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+
+public enum PythonType {
+
+ INT("int", Integer.class),
+ FLOAT("float", Double.class),
+ BOOL("bool", Boolean.class),
+ STR("str", String.class),
+ LIST("list", List.class),
+ DICT("dict", Map.class),
+ UNKNOWN("", Object.class);
+
+ private static final Map<String, PythonType> NAME_TO_TYPE;
+ private final String typeName;
+ private final Class<?> javaClass;
+
+ static {
+ NAME_TO_TYPE = Arrays.stream(values())
+ .filter(type -> type != UNKNOWN)
+ .collect(toMap(PythonType::getTypeName, Function.identity()));
+ }
+
+ private PythonType(String typeName, Class<?> javaClass) {
+ this.typeName = typeName;
+ this.javaClass = javaClass;
+ }
+
+ public static PythonType fromName(String name) {
+ PythonType pythonType = NAME_TO_TYPE.get(name);
+ return pythonType != null ? pythonType : UNKNOWN;
+ }
+
+ public String getTypeName() {
+ return typeName;
+ }
+
+ public Class<?> getJavaClass() {
+ return javaClass;
+ }
+} \ No newline at end of file