public boolean isExcluded(final Node node) { if (excludedProperties.contains(node.getPropertyPath())) { return true; } if (containsAny(node.getCategories(), excludedCategories)) { return true; } return false; }
public boolean isIntrospectible(final Node node) { if (isEqualsOnly(node)) { return false; } else if (node.isAdded()) { return returnChildrenOfAddedNodes; } else if (node.isRemoved()) { return returnChildrenOfRemovedNodes; } return true; }
public boolean isIncluded(final Node node) { if (node.isRootNode()) { return true; } if (includedCategories.isEmpty() && includedProperties.isEmpty()) { return true; } else if (containsAny(node.getCategories(), includedCategories)) { return true; } else if (includedProperties.contains(node.getPropertyPath())) { return true; } return false; }
public boolean isReturnable(final Node node) { if (node.isIgnored()) { return returnIgnoredNodes; } else if (node.isCircular()) { return returnCircularNodes; } else if (node.isUntouched()) { if (node.hasChanges()) { return true; } else if (node.hasChildren()) { return true; } return returnUnchangedNodes; } return true; }
public boolean isEqualsOnly(final Node node) { final Class<?> propertyType = node.getType(); if (propertyType != null) { if (propertyType.getAnnotation(ObjectDiffEqualsOnlyType.class) != null) { return true; } if (equalsOnlyTypes.contains(propertyType)) { return true; } if (Classes.isSimpleType(propertyType)) { return true; } } if (node.isEqualsOnly()) { return true; } if (equalsOnlyProperties.contains(node.getPropertyPath())) { return true; } return false; }
public boolean isIgnored(final Node node) { return node.isIgnored() || !isIncluded(node) || isExcluded(node); }