|| type == Type.REFERENCE || type == Type.WEAKREFERENCE) {
return (T) value;
} else {
Converter converter = Conversions.convert(value);
if (base == Type.DATE) {
converter = Conversions.convert(converter.toCalendar());
} else if (base == Type.DECIMAL) {
converter = Conversions.convert(converter.toDecimal());
} else if (base == Type.DOUBLE) {
converter = Conversions.convert(converter.toDouble());
} else if (base == Type.LONG) {