@Override public void handle(Object request, RequestData data) { super.handle(request, data); // also determine the sub operation FeatureMap elements = (FeatureMap) EMFUtils.get((EObject) request, "group"); if (elements == null) { return; } ListIterator i = elements.valueListIterator(); int flag = 0; while (i.hasNext()) { Object e = i.next(); if (e.getClass().getSimpleName().startsWith("Insert")) { flag |= 1; } else if (e.getClass().getSimpleName().startsWith("Update")) { flag |= 2; } else if (e.getClass().getSimpleName().startsWith("Delete")) { flag |= 4; } else { flag |= 8; } } StringBuffer sb = new StringBuffer(); if ((flag & 1) == 1) sb.append("I"); if ((flag & 2) == 2) sb.append("U"); if ((flag & 4) == 4) sb.append("D"); if ((flag & 8) == 8) sb.append("O"); data.setSubOperation(sb.toString()); }