可以使用Javers来使用类/对象(如元模型而不是具体的Java类)来计算差异吗?
到目前为止,我的研究让我相信Javers的差异只适用于作为具体Java类实现的模型。
与java-object-diff库类似。
我有一个元模型,其中单个模型包含的信息与使用Java Reflection API获得的信息大致相似(即Class,Field)。我还有模型对象实例,它类似于Java对象(即类的实例)。元模型和模型对象实例都是Java类,但这些类本身是一般重用的建模类,并且本身不感兴趣。
我期望必须进行相当多的连接,以便将元模型的细节暴露给差异算法,相当于从Java Reflection API和通常的Java对象语义中获取的内容。如:
等
答案 0 :(得分:0)
JaVers在内部使用元模型来比较用户的对象。
用户的对象被映射到Cdo
抽象。
(见javadocs)
然后比较Cdo
个实例。
因此,整个diff算法基于元模型。但是,它是JaVers'元模型。 JaVers准备好处理任何类型的元模型吗?可能不是。
JaVers是否已准备好处理您的元模型?没有看到它很难说,但我怀疑。
我可以建议,尝试将您的元模型转换为JaVers'元模型。提供Cdo
个实例,例如CdoSnapshot
并进行比较。