code: private static void checkTypeAdapterForParam( SQLiteModelMethod method,
  			String methodParamName, Class<? extends Annotation> annotation) {
  		
  		TypeName paramType=method.findParameterType(methodParamName);
  		if (method.isSpreadParameter(methodParamName)) {
  			if (paramType instanceof ArrayTypeName) {				
  				paramType = ((ArrayTypeName) paramType).componentType;
  			} else if (paramType instanceof ParameterizedTypeName) {				
  				paramType = ((ParameterizedTypeName) paramType).typeArguments.get(0);
  			} 
  		}
  		
  		TypeName adapterType = method.getAdapterForParam(methodParamName);
  		
  		
  		TypeName sourceType = TypeUtility.typeName(TypeAdapterHelper.detectSourceType(method, adapterType));
  		TypeName uboxSourceType=sourceType;
  		
  		if (TypeUtility.isTypeWrappedPrimitive(sourceType)) {
  			uboxSourceType=sourceType.unbox();
  		}
  		
  		boolean expr=uboxSourceType.toString().equals(paramType.toString()) || sourceType.toString().equals(paramType.toString());
  		
  		
  		AssertKripton.fail(!expr,
  				"In DAO '%s', method '%s' has parameter '%s' uses @%s that manages type '%s' instead of '%s'", method.getParent().getName(), method.getName(),
  				methodParamName, annotation.getSimpleName(),sourceType, paramType);
  
  	}
docs: Check type adapter.
  @param annotation
  
  @param entity the entity
  @param propertyType the property type
  @param typeAdapter the type adapter
  @param annotation the annotation