Java, EMF + OCL Диагностик не может обработать дублирующийся идентификатор
У меня есть модель EMF, где некоторые объекты содержат идентификаторы, а другие нет. Атрибут id настроен так:
Я использую java Diagnostician, чтобы проверить, нарушены ли какие-либо ограничения OCL:
protected Diagnostic validateModel(EObject modelRoot) {
return Diagnostician.INSTANCE.validate(modelRoot);
}
Который работает просто отлично в большинстве случаев. Но как только появляются дубликаты идентификаторов, Validator создает исключение ClassCastException, где он пытается привести один из двух объектов к типу другого. Что я могу сделать, чтобы избежать этого? Поможет ли каким-то образом ограничение OCL, которое проверяет дубликаты идентификаторов?