code: @Pure
  	public static boolean isAssignableFrom(Class<?> assignementTarget, Class<?> assignementSource) {
  		assert assignementSource != null;
  		assert assignementTarget != null;
  
  		// Test according to the Class's behaviour
  		if (assignementTarget.isAssignableFrom(assignementSource)) {
  			return true;
  		}
  
  		// Test according to autoboxing
  		if (assignementTarget.isPrimitive() && assignementSource.isPrimitive()
  				&& assignementTarget != Void.class && assignementTarget != void.class
  				&& assignementSource != Void.class && assignementSource != void.class) {
  			return true;
  		}
  
  		return false;
  	}
docs: Determines if the <code>assignmentTarget</code> object is either the same as,
  or is a superclass or superinterface of, the class or interface
  represented by the specified
  <code>assignementSource</code> parameter. This method extends
  {@link Class#isAssignableFrom(Class)} with autoboxing support.
  
  @param assignementTarget is the class that is tested to be a super class.
  @param assignementSource is the class that is tested to be a sub class.
  @return <code>true</code> if an object of the {@code assignementSource} type
  could be assigned to a variable of {@code assignementTarget} type,
  otherwise <code>false</code>.