package pt.ist.fenixframework.pstm;
import dml.runtime.DirectRelation;
import dml.runtime.Role;
import pt.ist.fenixframework.DomainObject;
public class LoggingRelation<C1 extends DomainObject,C2 extends DomainObject> extends DirectRelation<C1,C2> {
private String relationName;
public LoggingRelation(Role<C1,C2> firstRole) {
super(firstRole);
}
public void setRelationName(String relationName) {
this.relationName = relationName;
}
public void add(C1 o1, C2 o2) {
super.add(o1, o2);
if ((o1 != null) && (o2 != null)) {
Transaction.currentFenixTransaction().logRelationAdd(relationName, o1, o2);
}
}
public void remove(C1 o1, C2 o2) {
super.remove(o1, o2);
if ((o1 != null) && (o2 != null)) {
Transaction.currentFenixTransaction().logRelationRemove(relationName, o1, o2);
}
}
}