package jetbrains.mps.lang.test.matcher;
/*Generated by MPS */
import org.jetbrains.mps.openapi.language.SReferenceLink;
import org.jetbrains.mps.openapi.model.SNode;
/*package*/ class ReferenceDifference extends DifferenceItem {
private final SReferenceLink myRole;
private final boolean myInternal;
private final SNode myTarget1;
private final SNode myTarget2;
public ReferenceDifference(SReferenceLink role, boolean internal, SNode target1, SNode target2) {
myRole = role;
myInternal = internal;
myTarget1 = target1;
myTarget2 = target2;
}
@Override
public String toString() {
String fmt = "Different %s reference of role %s. One target is %s, while other is %s";
return String.format(fmt, (myInternal ? "internal" : "external"), myRole.getRoleName(), myTarget1, myTarget2);
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (!((obj instanceof ReferenceDifference))) {
return false;
}
ReferenceDifference diff = (ReferenceDifference) obj;
return myRole.equals(diff.myRole) && myInternal == diff.myInternal;
}
}