code: protected static Class detectRange(Method getMethod)
  	{
  		Class range = getMethod.getReturnType();
  		//if the return type is a collection then we have multiple cardinality
  		if (Collection.class.isAssignableFrom(range))
  		{
  			//it is a collection, by default assume non parameterized.
  			range = Object.class;
  			//If the collection is parameterized, get it.
  			Type genericReturnType = getMethod.getGenericReturnType();
  			if (genericReturnType instanceof ParameterizedType)
  			{
  				try
  				{
  					range = (Class) ((ParameterizedType) genericReturnType).getActualTypeArguments()[0];
  				}
  				catch (Exception e)
  				{
  					e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
  				}
  				//Now this is required as autoboxing will not work with reflection
  				if (range == Double.class)
  				{
  					range = double.class;
  				}
  				if (range == Float.class)
  				{
  					range = float.class;
  				}
  				if (range == Integer.class)
  				{
  					range = int.class;
  				}
  			}
  			if (log.isTraceEnabled()) log.trace(range.getCanonicalName());
  		}
  
  		return range;
  	}
docs: Given the multiple cardinality feature, the range of the get method is returned.
  @param getMethod default method
  
  @return the range as a class