Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  * Copyright 2014 Daniel Bechler
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * See the License for the specific language governing permissions and
 * limitations under the License.
package de.danielbechler.diff.inclusion;
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.

public interface InclusionResolver
Determines whether a given de.danielbechler.diff.node.DiffNode should be included into the comparison process.

node The node to determine the inclusion for. Keep in mind that the de.danielbechler.diff.node.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 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.
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.
New to GrepCode? Check out our FAQ X