@Override public LocalDateTime convert(String source) { return convertDateToLocalDateTime(stringToDateConverter.convert(source)); } }
@Override public boolean canHandle(Object source, TypeToken<?> targetTypeToken) { return targetTypeToken.isSubtypeOf(BaseSingleFieldPeriod.class) && ((source instanceof Number) || (stringToNumberConverter.canHandle(source, TypeToken.of(Long.class)))); } }
@Override public Object convert(Object source, TypeToken<?> targetTypeToken) { if (!canHandle(source, targetTypeToken)) { throw new ConverterException(source, targetTypeToken.getRawType()); } Integer period = null; if (source instanceof Number) { period = (Integer) numberToNumberConverter.convert(source, TypeToken.of(Integer.class)); } else if (source instanceof String) { period = (Integer) stringToNumberConverter.convert(source, TypeToken.of(Integer.class)); } Type targetType = targetTypeToken.getType(); if (targetType.equals(Seconds.class)) { return Seconds.seconds(period); } else if (targetType.equals(Minutes.class)) { return Minutes.minutes(period); } else if (targetType.equals(Hours.class)) { return Hours.hours(period); } else if (targetType.equals(Days.class)) { return Days.days(period); } else if (targetType.equals(Weeks.class)) { return Weeks.weeks(period); } else if (targetType.equals(Months.class)) { return Months.months(period); } else if (targetType.equals(Years.class)) { return Years.years(period); } throw new ConverterException(source, targetTypeToken.getRawType()); }
@Override public boolean canHandle(Object source, TypeToken<?> targetTypeToken) { return targetTypeToken.isSubtypeOf(BaseLocal.class) && stringToDateConverter.canHandle(source, TypeToken.of(Date.class)); } }
@Override public URL convert(String source) { try { return new URL(source); } catch (MalformedURLException e) { throw new ConverterException(source, getTargetTypeToken().getRawType(), e); } } }
@Override public URI convert(String source) { try { return new URI(source); } catch (URISyntaxException e) { throw new ConverterException(source, getTargetTypeToken().getClass(), e); } } }
@Override public Boolean convert(String source) { String normalize = source.trim().toLowerCase(); if (TRUE_STRING.contains(normalize)) { return true; } else if (FALSE_STRING.contains(normalize)) { return false; } else { throw new ConverterException(source, getTargetTypeToken().getRawType()); } } }
@SuppressWarnings("unchecked") @Override public Object convert(Object source, TypeToken<?> targetTypeToken) { if (!canHandle(source, targetTypeToken)) throw new ConverterException(source, targetTypeToken.getRawType()); Class enumClass = targetTypeToken.getRawType(); for (Object enumConstant : enumClass.getEnumConstants()) { String enumStr = enumConstant.toString().replaceAll("\\_", ""); String sourceStr = ((String) source).replaceAll("\\-", "").replaceAll("\\_", "").replaceAll("\\s", ""); if (enumStr.equalsIgnoreCase(sourceStr)) { return Enum.valueOf(enumClass, enumConstant.toString()); } } throw new ConverterException(source, targetTypeToken.getRawType(), "can not find enum constants"); }
@SuppressWarnings("unchecked") @Override public Object convert(Object source, TypeToken<?> targetTypeToken) { if (!canHandle(source, targetTypeToken)) throw new ConverterException(source, targetTypeToken.getRawType()); if (targetTypeToken.isPrimitive()) { targetTypeToken = PrimitiveTypeUtils.toWrapperTypeToken(targetTypeToken); } return NumberUtils.convertNumberToTargetClass((Number) source, (Class) targetTypeToken.getType()); }
@Override public LocalDate convert(String source) { return convertDateToLocalDateTime(stringToDateConverter.convert(source)).toLocalDate(); } }
@Override public Object convert(Object source, TypeToken<?> targetTypeToken) { if (targetTypeToken.isPrimitive()) { targetTypeToken = PrimitiveTypeUtils.toWrapperTypeToken(targetTypeToken); } if (canHandle(source, targetTypeToken)) { return NumberUtils.parseNumber((String) source, (Class) targetTypeToken.getType()); } else { throw new ConverterException("can not convert '" + source + "' to " + targetTypeToken.getRawType()); } }
@Override public LocalTime convert(String source) { return convertDateToLocalDateTime(stringToDateConverter.convert(source)).toLocalTime(); } }
@Override public Object convert(Object source, TypeToken<?> targetTypeToken) { if (!canHandle(source, targetTypeToken)) { throw new ConverterException(source, targetTypeToken.getRawType()); } Date date = stringToDateConverter.convert(String.valueOf(source)); return dateToJodaTimeBaseLocalConverter.convert(date, targetTypeToken); }