/** * Handles undoing the installation of the adapter from an EObject * by removing the adapter from each of the directly contained objects. */ protected void unsetTarget(EObject target) { basicUnsetTarget(target); if (useRecursion()) { for (Iterator<? extends Notifier> i = resolve() ? target.eContents().iterator() : ((InternalEList<EObject>)target.eContents()).basicIterator(); i.hasNext(); ) { Notifier notifier = i.next(); removeAdapter(notifier, false, true); } } else if (!iterating) { iterating = true; for (TreeIterator<EObject> i = EcoreUtil.getAllContents(target, resolve()); i.hasNext(); ) { EObject eObject = i.next(); removeAdapter(eObject, false, true); } iterating = false; } }