public EList<Element> allSuperTypes() {
if (allSuperTypesBodyOCL == null) {
EOperation eOperation = OntoUMLPackage.Literals.ELEMENT.getEOperations().get(0);
OCL.Helper helper = OCL_ENV.createOCLHelper();
helper.setOperationContext(OntoUMLPackage.Literals.ELEMENT, eOperation);
EAnnotation ocl = eOperation.getEAnnotation(OCL_ANNOTATION_SOURCE);
String body = ocl.getDetails().get("body");
try {
allSuperTypesBodyOCL = helper.createQuery(body);
} catch (ParserException e) {
throw new UnsupportedOperationException(e.getLocalizedMessage());