diff options
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.java | 47 |
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 |