public HollowWriteStateEngine patch() { Map<String, BitSet> baseMatches = findMatches(base); TransitiveSetTraverser.addTransitiveMatches(base, baseMatches); TransitiveSetTraverser.removeReferencedOutsideClosure(base, baseMatches); Map<String, BitSet> patchFromMatches = findMatches(patchFrom); HollowCombinerCopyDirector combineDirector = new HollowPatcherCombinerCopyDirector(base, baseMatches, patchFrom, patchFromMatches); HollowCombiner combiner = new HollowCombiner(combineDirector, base, patchFrom); combiner.addIgnoredTypes(ignoredTypes); combiner.combine(); return combiner.getCombinedStateEngine(); }