package jetbrains.mps.debugger.java.api.state.proxy;
/*Generated by MPS */
import jetbrains.mps.debug.api.programState.ILocation;
import org.jetbrains.annotations.NotNull;
import com.sun.jdi.Location;
import com.sun.jdi.AbsentInformationException;
import jetbrains.mps.ide.ThreadUtils;
public class JavaLocation implements ILocation {
private final String myFileName;
private final String myUnitName;
private final String myRoutineName;
private final int myLineNumber;
public JavaLocation(@NotNull Location location) throws AbsentInformationException {
assert !(ThreadUtils.isInEDT());
myFileName = location.sourceName();
myUnitName = location.declaringType().name();
myRoutineName = location.method().name();
myLineNumber = location.lineNumber();
}
@Override
public String getFileName() {
return myFileName;
}
@Override
public String getUnitName() {
return myUnitName;
}
@Override
public String getRoutineName() {
return myRoutineName;
}
@Override
public int getLineNumber() {
return myLineNumber;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || this.getClass() != o.getClass()) {
return false;
}
JavaLocation that = (JavaLocation) o;
if ((myFileName != null ? !((myFileName).equals(that.myFileName)) : that.myFileName != null)) {
return false;
}
if ((myUnitName != null ? !((myUnitName).equals(that.myUnitName)) : that.myUnitName != null)) {
return false;
}
if ((myRoutineName != null ? !((myRoutineName).equals(that.myRoutineName)) : that.myRoutineName != null)) {
return false;
}
if (myLineNumber != that.myLineNumber) {
return false;
}
return true;
}
@Override
public int hashCode() {
int result = 0;
result = 31 * result + ((myFileName != null ? String.valueOf(myFileName).hashCode() : 0));
result = 31 * result + ((myUnitName != null ? String.valueOf(myUnitName).hashCode() : 0));
result = 31 * result + ((myRoutineName != null ? String.valueOf(myRoutineName).hashCode() : 0));
result = 31 * result + myLineNumber;
return result;
}
}