package fr.inria.atlanmod.neo4emf.change.impl;
import org.eclipse.emf.ecore.EReference;
import fr.inria.atlanmod.neo4emf.INeo4emfObject;
import fr.inria.atlanmod.neo4emf.drivers.impl.Serializer;
public class BidirectionalAddLink extends AddLink {
private final boolean eObjectWasSaved;
private final boolean referencedEObjectWasSaved;
public BidirectionalAddLink(INeo4emfObject from, EReference eRef, INeo4emfObject to) {
super(from,eRef,to);
assert eRef.getEOpposite() != null : "Try to create a BidirectionalAddLink with a uniderctional EReference";
eObjectWasSaved = from.isLoaded();
referencedEObjectWasSaved = to.isLoaded();
}
@Override
public void process(Serializer serializer, boolean isTmp) {
//if(eObjectWasSaved && referencedEObjectWasSaved) {
serializer.addNewLink(eObject, eReference, referencedEObject, isTmp);
//}
//if(referencedEObjectWasSaved && eObjectWasSaved) {
serializer.addNewLink(referencedEObject, eReference.getEOpposite(), eObject, isTmp);
//}
super.release();
}
}