((List)copyEObject.eGet(getTarget(eReference))).addAll(copyAll((List)eObject.eGet(eReference)));
List source = (List)eObject.eGet(eReference); List target = (List)copyEObject.eGet(getTarget(eReference)); if (source.isEmpty()) { target.clear(); } else { target.addAll(copyAll(source)); }
    protected void copyContainment(EReference eReference, EObject eObject, EObject copyEObject)    {      if (eObject.eIsSet(eReference))      {        if (eReference.isMany())        {          ((List)copyEObject.eGet(getTarget(eReference))).addAll(copyAll((List)eObject.eGet(eReference)));        }        else        {          EObject childEObject = (EObject)eObject.eGet(eReference);          copyEObject.eSet(getTarget(eReference), childEObject == null ? null : copy(childEObject));        }      }    }