Community
Participate
Working Groups
In EObjectValidator.validate(EClass eClass, EObject eObject, DiagnosticChain diagnostics, Map<Object, Object> context) the recursion (for non-EcorePackage) to superclass is via validate(eSuperTypes.get(0), eObject, diagnostics, context); rather than a loop over all eSuperTypes, so constraints inherited from a second supertype are ignored. Is this deliberate or an oversight? It's certainly a convenient way of avoiding double validation of a constraint inherited from more than one superclass.
Yes this is deliberate limitation to avoid multiple . It's similar to the limitation in org.eclipse.emf.ecore.impl.EFactoryImpl.create(EClass) which can also only create an instance of one specific concrete class.