{
Class<?> containerClass = eOperation.getEContainingClass().getInstanceClass();
if (containerClass == null)
{
EClass eClass = eClass();
EOperation override = eClass.getOverride(eOperation);
return eClass.getOperationID(override != null ? override : eOperation);
}
else
{
assert eClass().getEAllOperations().contains(eOperation) : "The operation '" + eOperation.getName() + "' is not a valid operation";