package jetbrains.mps.idea.java.refactoring;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.mps.openapi.model.SNode;
import org.jetbrains.mps.openapi.model.SNodeReference;
import org.jetbrains.mps.openapi.model.SReference;
import org.jetbrains.mps.openapi.module.SRepository;
/**
* danilla 3/19/13
*/
// Didn't want to call it SReferenceReference :)
public class SReferencePtr {
@NotNull
private SNodeReference source;
@NotNull
private String role;
public SReferencePtr(@NotNull SNodeReference source, @NotNull String role) {
this.source = source;
this.role = role;
}
@NotNull
public SNodeReference getSource() {
return source;
}
@NotNull
public String getRole() {
return role;
}
@Override
public boolean equals(Object o) {
if (!(o instanceof SReferencePtr)) return false;
SReferencePtr other = (SReferencePtr) o;
return source.equals(other.source) && role.equals(other.role);
}
@Override
public int hashCode() {
return source.hashCode()*31 + role.hashCode();
}
// public SReference resolve(SRepository repo) {
// SNode node = source.resolve(repo);
// if (node == null) {
// return null;
// }
// return node.getReference(role);
// }
}