/**
* <copyright>
* </copyright>
*
*
*/
package org.dresdenocl.language.ocl.resource.ocl.mopp;
import java.util.Arrays;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.util.EcoreUtil;
/**
* A quick fix that replaces the target of a reference with another EObject. This
* class is used to implement default quick fixes for references that could not be
* resolved, but can also be used by custom reference resolvers.
*/
public class OclChangeReferenceQuickFix extends org.dresdenocl.language.ocl.resource.ocl.mopp.OclQuickFix {
private EObject container;
private EReference reference;
private EObject oldTarget;
private EObject newTarget;
public OclChangeReferenceQuickFix(String displayString, String imageKey, EObject container, EReference reference, EObject oldTarget, EObject newTarget) {
super(displayString, imageKey, Arrays.asList(container, reference, oldTarget));
this.container = container;
this.reference = reference;
this.oldTarget = oldTarget;
this.newTarget = newTarget;
}
@Override
public void applyChanges() {
EcoreUtil.replace(container, reference, oldTarget, newTarget);
}
}