public static @Nullable Type getType(@Nullable TypedElement typedElement) { if (typedElement == null) { return null; } Type type = typedElement.getType(); if (type == null) { return null; } // type = getType(type); type = getNonLambdaType(type); if (type instanceof SelfType) { if (typedElement instanceof Parameter) { Operation operation = ((Parameter) typedElement).getOwningOperation(); if (operation != null) { org.eclipse.ocl.pivot.Class selfType = operation.getOwningClass(); if (selfType != null) { type = selfType; } } } } return type; }