1919import de .danielbechler .diff .access .Accessor ;
2020import de .danielbechler .diff .access .Instances ;
2121import de .danielbechler .diff .access .PropertyAwareAccessor ;
22+ import de .danielbechler .diff .category .CategoryResolver ;
2223import de .danielbechler .diff .introspection .PropertyReadException ;
2324import de .danielbechler .diff .circular .CircularReferenceDetector ;
2425import de .danielbechler .diff .circular .CircularReferenceDetectorFactory ;
@@ -46,6 +47,7 @@ public class DifferDispatcher
4647 private final CircularReferenceDetectorFactory circularReferenceDetectorFactory ;
4748 private final CircularReferenceExceptionHandler circularReferenceExceptionHandler ;
4849 private final IsIgnoredResolver isIgnoredResolver ;
50+ private final CategoryResolver categoryResolver ;
4951 private final IsReturnableResolver isReturnableResolver ;
5052 private final PropertyAccessExceptionHandlerResolver propertyAccessExceptionHandlerResolver ;
5153 private static final ThreadLocal <CircularReferenceDetector > workingThreadLocal = new ThreadLocal <CircularReferenceDetector >();
@@ -56,14 +58,18 @@ public DifferDispatcher(final DifferProvider differProvider,
5658 final CircularReferenceExceptionHandler circularReferenceExceptionHandler ,
5759 final IsIgnoredResolver ignoredResolver ,
5860 final IsReturnableResolver returnableResolver ,
59- final PropertyAccessExceptionHandlerResolver propertyAccessExceptionHandlerResolver )
61+ final PropertyAccessExceptionHandlerResolver propertyAccessExceptionHandlerResolver ,
62+ final CategoryResolver categoryResolver )
6063 {
6164 Assert .notNull (differProvider , "differFactory" );
6265 this .differProvider = differProvider ;
6366
6467 Assert .notNull (ignoredResolver , "ignoredResolver" );
6568 this .isIgnoredResolver = ignoredResolver ;
6669
70+ Assert .notNull (categoryResolver , "categoryResolver" );
71+ this .categoryResolver = categoryResolver ;
72+
6773 this .circularReferenceDetectorFactory = circularReferenceDetectorFactory ;
6874 this .circularReferenceExceptionHandler = circularReferenceExceptionHandler ;
6975 this .isReturnableResolver = returnableResolver ;
@@ -101,6 +107,10 @@ public DiffNode dispatch(final DiffNode parentNode,
101107 {
102108 parentNode .addChild (node );
103109 }
110+ if (node != null )
111+ {
112+ node .addCategories (categoryResolver .resolveCategories (node ));
113+ }
104114 return node ;
105115 }
106116
0 commit comments