public < T > DiffNode compare ( final T working , final T base ) { dispatcher . resetInstanceMemory ( ) ; try { return dispatcher . dispatch ( DiffNode . ROOT , Instances . of ( working , base ) , RootAccessor . getInstance ( ) ) ; } finally { dispatcher . clearInstanceMemory ( ) ; } }
Recursively inspects the given objects and returns a node representing their differences . Both objects have be have the same type .