code: public static <T> void isNotEquals( final T argument,
                                          String argumentName,
                                          final T object,
                                          String objectName ) {
          if (argument == null) {
              if (object != null) return;
              // fall through ... both are null
          } else {
              if (!argument.equals(object)) return; // handles object==null
              // fall through ... they are equal
          }
          if (objectName == null) objectName = getObjectName(object);
          throw new IllegalArgumentException(CommonI18n.argumentMustNotBeEquals.text(argumentName, objectName));
      }
docs: Asserts that the specified first object is not {@link Object#equals(Object) equal to} the specified second object. This
  method does take null references into consideration.
  
  @param <T>
  @param argument The argument to assert equal to <code>object</code>.
  @param argumentName The name that will be used within the exception message for the argument should an exception be thrown
  @param object The object to assert as equal to <code>argument</code>.
  @param objectName The name that will be used within the exception message for <code>object</code> should an exception be
  thrown; if <code>null</code> and <code>object</code> is not <code>null</code>, <code>object.toString()</code> will
  be used.
  @throws IllegalArgumentException If the specified objects are equals.