コード例 #1
0
 @SuppressWarnings("unchecked")
 public <T> void register(TypeHandler<T> typeHandler) {
   boolean mappedTypeFound = false;
   MappedTypes mappedTypes = typeHandler.getClass().getAnnotation(MappedTypes.class);
   if (mappedTypes != null) {
     for (Class<?> handledType : mappedTypes.value()) {
       register(handledType, typeHandler);
       mappedTypeFound = true;
     }
   }
   // @since 3.1.0 - try to auto-discover the mapped type
   if (!mappedTypeFound && typeHandler instanceof TypeReference) {
     try {
       TypeReference<T> typeReference = (TypeReference<T>) typeHandler;
       register(typeReference.getRawType(), typeHandler);
       mappedTypeFound = true;
     } catch (Throwable t) {
       // maybe users define the TypeReference with a different type and are not assignable, so
       // just ignore it
     }
   }
   if (!mappedTypeFound) {
     register((Class<T>) null, typeHandler);
   }
 }
コード例 #2
0
 private <T> void register(Type javaType, TypeHandler<? extends T> typeHandler) {
   MappedJdbcTypes mappedJdbcTypes = typeHandler.getClass().getAnnotation(MappedJdbcTypes.class);
   if (mappedJdbcTypes != null) {
     for (JdbcType handledJdbcType : mappedJdbcTypes.value()) {
       register(javaType, handledJdbcType, typeHandler);
     }
   } else {
     register(javaType, null, typeHandler);
   }
 }
コード例 #3
0
 private void register(Type javaType, JdbcType jdbcType, TypeHandler<?> handler) {
   if (javaType != null) {
     Map<JdbcType, TypeHandler<?>> map = TYPE_HANDLER_MAP.get(javaType);
     if (map == null) {
       map = new HashMap<JdbcType, TypeHandler<?>>();
       TYPE_HANDLER_MAP.put(javaType, map);
     }
     map.put(jdbcType, handler);
     if (reversePrimitiveMap.containsKey(javaType)) {
       register(reversePrimitiveMap.get(javaType), jdbcType, handler);
     }
   }
   ALL_TYPE_HANDLERS_MAP.put(handler.getClass(), handler);
 }