@Override public boolean convertFrom(Object value, Class<?> targetType, Type genericType, Out<Object> out, ConvertContext context) throws Throwable { if(value instanceof CharSequence) { out.set(Pattern.compile(value.toString())); return true; } return false; }
@Override public boolean convertFrom(Object value, Class<?> targetType, Type genericType, Out<Object> out, ConvertContext context) throws Throwable { String string = value.toString(); out.set(string.charAt(0)); return true; }
@Override public boolean convertTo(Boolean value, Class<?> targetType, Type genericType, Out<Object> out, ConvertContext context) throws Throwable { if(Number.class.isAssignableFrom(targetType)){ out.set(Converts.convert(value.booleanValue() ? 1 : 0, targetType)); return true; }else if(Character.class.equals(targetType)){ out.set(value.booleanValue() ? '1' : '0'); return true; } return false; }
@Override public boolean convertFrom(Object value, Class<?> targetType, Type genericType, Out<Object> out, ConvertContext context) throws Throwable { out.set(Classes.forName(value.toString())); return true; }
@Override public boolean convertTo(T value, Class<?> targetType, Type genericType, Out<Object> out, ConvertContext context) throws Throwable { if(targetType.equals(Instant.class)) { out.set(convertToInstant(value)); return true; } return false; }
@Override public boolean convertFrom(Object value, Class<?> targetType, Type genericType, Out<Object> out, ConvertContext context) throws Throwable { if(value instanceof CharSequence){ String name = value.toString(); out.set(MSimpleTypes.forName(name)); return true; } return false; }
@Override public boolean convertFrom(Object value, Class<?> targetType, Type genericType, Out<Object> out, ConvertContext context) throws Throwable { if(value instanceof byte[]){ out.set(new SimpleBlob((byte[])value)); return true; } return false; }
@SuppressWarnings("unchecked") public boolean convertFrom(Object value, Class<?> targetType, Class<?> genericType, Out<Object> out, ConvertContext context) throws Throwable { Enum<?> enumObject = Enums.valueOf((Class<Enum<?>>)targetType, value); if(null != enumObject){ out.set(enumObject); return true; } return false; }
@Override public boolean convertFrom(Object value, Class<?> targetType, Type genericType, Out<Object> out, ConvertContext context) throws Throwable { String fqName = value.toString(); out.set(Reflection.getMethodByFqName(fqName)); return true; }
@Override public boolean convertTo(Object value, Class<?> targetType, Type genericType, Out<Object> out, ConvertContext context) throws Throwable { if(Map.class.isAssignableFrom(targetType)){ out.set(convertToMap(value)); return true; } return false; }
@Override public boolean convertFrom(Object value, Class<?> targetType, Type genericType, Out<Object> out, ConvertContext context) throws Throwable { out.set(Locales.forName(value.toString())); return true; }
@Override public boolean convertFrom(Object value, Class<?> targetType, Type genericType, Out<Object> out, ConvertContext context) throws Throwable { if(value instanceof Number){ out.set(toNumber(targetType, ((Number)value))); }else if(value instanceof Boolean){ out.set(toNumber(targetType,((Boolean)value) ? ONE : ZERO)); }else { out.set(toNumber(targetType, value)); } return true; }
@Override public boolean checkAndConvert(Validation validation, String name, Object value, Out<Object> out) { try { out.set(Converts.convert(value, targetType)); return true; }catch (ConvertException e) { validation.addError(name, "Can't convert to '" + targetType.getSimpleName() + "', invalid data type"); return false; } } }
@Override public boolean convertTo(Blob value, Class<?> targetType, Type genericType, Out<Object> out, ConvertContext context) throws Throwable { //TODO : close inputstream ? byte[] data = IO.readByteArray(value.getBinaryStream()); out.set(Converts.convert(data, targetType, genericType)); return true; }
@Override public boolean convertTo(Clob value, Class<?> targetType, Type genericType, Out<Object> out, ConvertContext context) throws Throwable { out.set(Converts.convert(convertToString(value), targetType,genericType)); return true; }
@Override public boolean convertFrom(Object value, Class<?> targetType, Type genericType, Out<Object> out, ConvertContext context) throws Throwable { String string = Converts.toString(value); out.set(new SimpleClob(string)); return true; }
@Override public boolean convertFrom(Object value, Class<?> targetType, Type genericType, Out<Object> out, ConvertContext context) throws Throwable { boolean re = super.convertFrom(value, targetType, genericType, out, context); if(re) return true; if(value instanceof Time) { out.set(((Time) value).toLocalTime()); return true; } return false; } }
protected boolean isGotoLoginView(Request request, Response response, LoginContext context) { LoginHandler.HandleType type = request.isGet()? LoginHandler.HandleType.VIEW : LoginHandler.HandleType.AUTHENTICATION; Out<LoginHandler.HandleType> out = new Out<>(); out.set(type); for(LoginHandler handler : handlers){ handler.parseHandleType(request,response,context,out); } return out.get() == LoginHandler.HandleType.VIEW; }