package com.bitmonlab.osiris.core.commons.validations.utils; import java.util.EnumSet; import java.util.HashMap; import java.util.Map; public enum PartialUpdateDataTypes { BOOLEAN("Boolean"), STRING("String"), INTEGER("Integer"), DOUBLE("Double"), LONG("Long"); private String type; private static final Map<String,PartialUpdateDataTypes> lookUp = new HashMap<String,PartialUpdateDataTypes>(); static { for(PartialUpdateDataTypes partialUpdateDataTypes : EnumSet.allOf(PartialUpdateDataTypes.class)) lookUp.put(partialUpdateDataTypes.getCode(), partialUpdateDataTypes); } private PartialUpdateDataTypes(String type){ this.type = type; } public String getCode(){ return type; } public static PartialUpdateDataTypes getType(final String code){ if (lookUp.containsKey(code)) return lookUp.get(code); throw new IllegalStateException(); } public static Object getCastValue(String code, String value){ switch(PartialUpdateDataTypes.getType(code)){ case BOOLEAN: return Boolean.parseBoolean(value); case DOUBLE: return Double.parseDouble(value); case INTEGER: return Integer.parseInt(value); case LONG: return Long.parseLong(value); case STRING: return value; } throw new IllegalStateException("ObjectMapper -> className. NotSupported."); } };