code: public static ConversionType getConversionType(final Class<?> destination, final Class<?> source){
  		
  		if(destination == String.class)   return toStringConversion(source);
  		if(destination == Byte.class)     return toByteConversion(source);
  		if(destination == byte.class)     return tobyteConversion(source);
  		if(destination == Short.class)    return toShortConversion(source);
  		if(destination == short.class)    return toshortConversion(source);
  		if(destination == Integer.class)  return toIntegerConversion(source);
  		if(destination == int.class)      return tointConversion(source);
  		if(destination == Long.class)     return toLongConversion(source);
  		if(destination == long.class)     return tolongConversion(source);
  		if(destination == Float.class)    return toFloatConversion(source);
  		if(destination == float.class)    return tofloatConversion(source);
  		if(destination == Double.class)   return toDoubleConversion(source);
  		if(destination == double.class)   return todoubleConversion(source);
  		if(destination == Character.class)return toCharacterConversion(source);
  		if(destination == char.class)     return tocharConversion(source);
  		if(destination == Boolean.class)  return toBooleanConversion(source);
  		if(destination == boolean.class)  return tobooleanConversion(source);
  		return UNDEFINED;
  	}
docs: Analyzes classes given as input and returns the type of conversion that has to be done.
  @param destination class to analyze
  @param source class to analyze
  @return type of Conversion