package frame.variant; import java.sql.Types; public enum ValueType { Void, Int, Long, Double, Decimal, Date, String, Boolean, Entity, EntitySet, Float,List; public static ValueType valueOfTypes(int value) { if (Types.INTEGER == value) { return Int; } if (Types.BIGINT == value) { return Int; } else if (Types.BIGINT == value) { return Long; } else if (Types.SMALLINT == value) { return Int; } else if (Types.TINYINT == value) { return Int; } else if (Types.DECIMAL == value) { return Decimal; } else if (Types.NUMERIC == value) { return Decimal; } else if (Types.DOUBLE == value) { return Double; } else if (Types.FLOAT == value) { return Double; } else if (Types.DATE == value) { return Date; } else if (Types.TIME == value) { return Date; } else if (Types.TIMESTAMP == value) { return Date; } else if (Types.BOOLEAN == value) { return Boolean; } else if (Types.BIT == value) { return Boolean; } else { return String; } } public static ValueType valueOfString(String value) { if (value == null) { return String; } value = value.toLowerCase(); if ("String".equals(value)) { return String; } else if ("char".equals(value)) { return String; } else if ("varchar".equals(value)) { return String; } else if ("vchar".equals(value)) { return String; } else if ("text".equals(value)) { return String; } else if ("int".equals(value)) { return Int; } else if ("tinyint".equals(value)) { return Int; } else if ("smallint".equals(value)) { return Int; } else if ("bigint".equals(value)) { return Int; } else if ("long".equals(value)) { return Int; } else if ("number".equals(value)) { return Double; } else if ("decimal".equals(value)) { return Double; } else if ("float".equals(value)) { return Double; } else if ("double".equals(value)) { return Double; } else if ("date".equals(value)) { return Date; } else if ("time".equals(value)) { return Date; } else if ("datetime".equals(value)) { return Date; } else if ("boolean".equals(value)) { return Boolean; } else if ("entity".equals(value)) { return Entity; } else if ("entityset".equals(value)) { return EntitySet; } else { return String; } } public String toJavaScriptType() { int no = ordinal(); if (no == 0) { return "String"; } else if (no == 1) { return "integer"; } else if (no == 2) { return "double"; } else if (no == 3) { return "date"; } else if (no == 4) { return "boolean"; } return "String"; } public static ValueType valueOfSAPTypes(String type) { if (type == null) { return String; } type = type.trim().toLowerCase(); if ("c".equalsIgnoreCase(type)) { return String; } else if ("n".equalsIgnoreCase(type)) { return String; } else if ("t".equalsIgnoreCase(type)) { return String; } else if ("d".equalsIgnoreCase(type)) { return String; } else if ("i".equalsIgnoreCase(type)) { return Int; } else if ("f".equalsIgnoreCase(type)) { return Double; } else if ("p".equalsIgnoreCase(type)) { return Double; } else if ("x".equalsIgnoreCase(type)) { return String; } return String; } public Class getJavaClass() { if (Int.equals(this)) { return Integer.class; } else if (Double.equals(this)) { return java.lang.Double.class; } else if (Float.equals(this)) { return java.lang.Float.class; } else if (Decimal.equals(this)) { return java.math.BigDecimal.class; } else if (Date.equals(this)) { return java.util.Date.class; } else if (List.equals(this)) { return java.util.List.class; } else if (Boolean.equals(this)) { return java.lang.Boolean.class; } else { return java.lang.String.class; } } public int toSQLTypes() { if (Int == this) { return Types.INTEGER; } else if (Double == this) { return Types.NUMERIC; } else if (Date == this) { return Types.DATE; } else if (Boolean == this) { return Types.BIT; } else { return Types.VARCHAR; } } }