Interface InclusionResolver


public interface InclusionResolver
This can be used to implement custom inclusion mechanisms. Some objects may not be relevant or suitable for the comparison process. Using an InclusionResolver is a powerful and flexible way to detect and exclude those objects.

Keep in mind that every single node in the object graph will be checked against each and every registered InclusionResolver. If performance is important to you, make sure that calling its methods is as cheap as possible.

  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    When this method returns true, it causes the inclusion service to exclude all nodes that are not explicitly included via Inclusion.INCLUDED.
    Determines whether a given DiffNode should be included into the comparison process.
  • Method Details

    • getInclusion

      Inclusion getInclusion(DiffNode node)
      Determines whether a given DiffNode should be included into the comparison process.
      Parameters:
      node - The node to determine the inclusion for. Keep in mind that the DiffNode doesn't contain any children at this point and albeit it is already linked to its parent node, the parent node also probably hasn't been fully processed yet. It is only safe to examine the node path and type related properties along the path up to the root node, but definitely not to make any decisions based on the state or number of child nodes.
      Returns:
      Returns either Inclusion.INCLUDED to indicate an explicit inclusion, Inclusion.EXCLUDED to inidicate an explicit exclusion or Inclusion.DEFAULT in case this resolver doesn't want to influence the decision. This method should never return null.
    • enablesStrictIncludeMode

      boolean enablesStrictIncludeMode()
      When this method returns true, it causes the inclusion service to exclude all nodes that are not explicitly included via Inclusion.INCLUDED. Otherwise nodes with Inclusion.DEFAULT will also be included.