return startBuilding().build();
}
public ObjectDiffer build()
{
final DifferProvider differProvider = new DifferProvider();
final DifferDispatcher differDispatcher = new DifferDispatcher(
differProvider,
circularReferenceService,
circularReferenceService,
inclusionService,
returnableNodeService,
introspectionService);
differProvider.push(new BeanDiffer(differDispatcher, introspectionService, returnableNodeService, comparisonService, introspectionService));
differProvider.push(new CollectionDiffer(differDispatcher, comparisonService));
differProvider.push(new MapDiffer(differDispatcher, comparisonService));
differProvider.push(new PrimitiveDiffer(comparisonService));
for (final DifferFactory differFactory : differFactories)
{
differProvider.push(differFactory.createDiffer(differDispatcher, nodeQueryService));
}
return new ObjectDiffer(differDispatcher);
}