class DefaultAtlasConversionService implements AtlasConversionService {

    @Override
    public Class<?> classFromFieldType(FieldType fieldType) {
        if (fieldType == null) {
            return null;
        }

        switch (fieldType) {
        case ANY:
            return Object.class;
        case BIG_INTEGER:
            return BigInteger.class;
        case BOOLEAN:
            return Boolean.class;
        case BYTE:
            return Byte.class;
        case BYTE_ARRAY:
            return Byte[].class;
        case CHAR:
            return java.lang.Character.class;
        case COMPLEX:
            // COMPLEX doesn't have representative class
            return null;
        case DATE:
            return java.time.LocalDate.class;
        case DATE_TIME:
            return Date.class;
        case DATE_TZ:
        case TIME_TZ:
        case DATE_TIME_TZ:
            return java.time.ZonedDateTime.class;
        case DECIMAL:
            return java.math.BigDecimal.class;
        case DOUBLE:
            return java.lang.Double.class;
        case FLOAT:
            return java.lang.Float.class;
        case INTEGER:
            return java.lang.Integer.class;
        case LONG:
            return java.lang.Long.class;
        case NONE:
            return null;
        case NUMBER:
            return java.lang.Number.class;
        case SHORT:
            return java.lang.Short.class;
        case STRING:
            return java.lang.String.class;
        case TIME:
            return java.time.LocalTime.class;
        default:
            throw new IllegalArgumentException(
                    String.format("Unsupported field type '%s': corresponding Java class needs to be added in DefaultAtlasConversionService",
                            fieldType));
        }
    }

    private  DefaultAtlasConversionService();

}