比较插件提供对实现您自已的内容查看器的充分支持:
Differencer 是分层结构数据的求差引擎。它接收两个或三个输入并对它们执行双向或三向比较。
如果求差引擎的输入元素实现了 IStructureComparator 接口,则该引擎以递归方式将其本身应用于输入元素的子代。叶元素必须实现 IStreamContentAccessor 接口,以便区分器执行对其内容的字节比较。
有几个示例较好地演示了包括在平台实现中的区分器:
缺省情况下,求差引擎将比较操作的结果作为 DiffNode 对象树返回。DiffNode 描述两个或三个输入之间的更改。可以通过覆盖引擎的单个方法来更改结果结点的类型。
可以将 DiffNode 树显示在 DiffTreeViewer 中。 DiffTreeViewer 要求树的内部节点实现 IDiffContainer 接口并且各叶实现 IDiffElement 接口。
比较分层结构数据和显示差别的典型步骤如下:
ZipFileStructureCreator 是 IStructureCreator 接口的实现,并以 IStructureComparator 的分层结构的形式提供 ZIP 归档文件的内容,求差引擎 (Differencer)可以很容易地比较它。这个示例很好地演示了如何使结构化文件可供比较插件的分层比较功能使用。