EObject oldInstance = instance; instance = EmfUtils.clone(instance); Copier copier = new Copier(false, false);
/** * copies contents of a resource set into a new one */ public static <T extends ResourceSet> T clone(T target, ResourceSet source) { EList<Resource> resources = source.getResources(); EcoreUtil.Copier copier = new EcoreUtil.Copier(); for (Resource resource : resources) { Resource resource2 = target.createResource(resource.getURI()); resource2.getContents().addAll(copier.copyAll(resource.getContents())); } copier.copyReferences(); return target; }
/** * Returns a self-contained copy of the eObject. * @param eObject the object to copy. * @return the copy. * @see Copier */ public static <T extends EObject> T copy(T eObject) { Copier copier = new Copier(); EObject result = copier.copy(eObject); copier.copyReferences(); @SuppressWarnings("unchecked")T t = (T)result; return t; }
/** * Returns a collection of the self-contained copies of each {@link EObject} in eObjects. * @param eObjects the collection of objects to copy. * @return the collection of copies. * @see Copier */ public static <T> Collection<T> copyAll(Collection<? extends T> eObjects) { Copier copier = new Copier(); Collection<T> result = copier.copyAll(eObjects); copier.copyReferences(); return result; }
/** * Returns a self-contained copy of the eObject. * @param eObject the object to copy. * @return the copy. * @see Copier */ public static <T extends EObject> T copy(T eObject) { Copier copier = new Copier(); EObject result = copier.copy(eObject); copier.copyReferences(); @SuppressWarnings("unchecked")T t = (T)result; return t; }
/** * Clones the given model. Either an {@link EObject}, {@link Resource} or {@link ResourceSet}. * @param notifier The root container of the model. * @return The cloned model. */ public static Notifier clone(Notifier notifier) { Copier copier = new Copier(); Notifier clonedModel = clone(notifier, copier, null); copier.copyReferences(); return clonedModel; }
/** * Clones the given EObject without resolving any proxies. */ @SuppressWarnings("unchecked") public static <T extends EObject> T cloneWithProxies(T original) { if (original == null) return original; EcoreUtil.Copier copier = new EcoreUtil.Copier(false); T copy = (T) copier.copy(original); copier.copyReferences(); return copy; }
public BuildElement createWorkingCopy() { EcoreUtil.Copier copier = new EcoreUtil.Copier(); BuildElement newElement = (BuildElement) copier.copy(this); // FIXME clone containment hierarchy instead copier.copyReferences(); newElement.original = this; return newElement; }
/** * Returns a collection of the self-contained copies of each {@link EObject} in eObjects. * @param eObjects the collection of objects to copy. * @return the collection of copies. * @see Copier */ public static <T> Collection<T> copyAll(Collection<? extends T> eObjects) { Copier copier = new Copier(); Collection<T> result = copier.copyAll(eObjects); copier.copyReferences(); return result; }