src/main/java/org/fest/assertions/error/ShouldBeLenientEqualByIgnoring.java
public static <E> ErrorMessageFactory shouldBeLenientEqualByIgnoring(Object actual, List<String> rejectedFields,
      List<Object> expectedValues, List<String> ignoredFields) {
    if (rejectedFields.size() == 1) {
      if (ignoredFields.isEmpty()) {
        return new ShouldBeLenientEqualByIgnoring(actual, rejectedFields.get(0), expectedValues.get(0));
      } else {
        return new ShouldBeLenientEqualByIgnoring(actual, rejectedFields.get(0), expectedValues.get(0), ignoredFields);
      }
    } else {
      if (ignoredFields.isEmpty()) {
        return new ShouldBeLenientEqualByIgnoring(actual, rejectedFields, expectedValues);
      } else {
        return new ShouldBeLenientEqualByIgnoring(actual, rejectedFields, expectedValues, ignoredFields);
      }
    }
  }
public static <E> ErrorMessageFactory shouldBeLenientEqualByIgnoring(Object actual, List<String> rejectedFields,
      List<Object> expectedValues, List<String> ignoredFields) {
    if (rejectedFields.size() == 1) {
      if (ignoredFields.isEmpty()) {
        return new ShouldBeLenientEqualByIgnoring(actual, rejectedFields.get(0), expectedValues.get(0));
      } else {
        return new ShouldBeLenientEqualByIgnoring(actual, rejectedFields.get(0), expectedValues.get(0), ignoredFields);
      }
    } else {
      if (ignoredFields.isEmpty()) {
        return new ShouldBeLenientEqualByIgnoring(actual, rejectedFields, expectedValues);
      } else {
        return new ShouldBeLenientEqualByIgnoring(actual, rejectedFields, expectedValues, ignoredFields);
      }
    }
  }
Creates a new </code>{@link ShouldBeLenientEqualByIgnoring}</code>.
@param actual the actual value in the failed assertion.
@param rejectedFields fields name not matching
@param expectedValues fields value not matching
@param ignoredFields fields which are not base the lenient equality
@return the created {@code ErrorMessageFactory}.