@Override public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) { final Class<? super T> rawType = type.getRawType(); if (rawType != null && LaDBFluteUtil.isClassificationType(rawType)) { @SuppressWarnings("unchecked") final TypeAdapter<T> pter = (TypeAdapter<T>) createTypeAdapterClassification(rawType); return pter; } else { return null; } }
@Override public Classification read(JsonReader in) throws IOException { if (in.peek() == JsonToken.NULL) { in.nextNull(); return null; } final String code = in.nextString(); if (isEmptyToNullReading() && "".equals(code)) { // option return null; } try { return LaDBFluteUtil.toVerifiedClassification(clsType, code); } catch (ClassificationCodeOfMethodNotFoundException e) { throwJsonPropertyClassificationCodeOfMethodNotFoundException(code, in, e); return null; // unreachable } catch (ClassificationUnknownCodeException e) { throwJsonPropertyUnknownClassificationCodeException(code, in, e); return null; // unreachable } }