blob: 0e642d8c251b79b4a77e7d53854c4c5bf27d5d19 [file] [log] [blame]
// Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.position;
import com.android.tools.r8.Keep;
@Keep
public class TextRange implements Position {
private final TextPosition start;
private final TextPosition end;
public TextRange(TextPosition start, TextPosition end) {
this.start = start;
this.end = end;
}
/**
* Return the start position of this range.
*/
public TextPosition getStart() {
return start;
}
/**
* Return the end position of this range.
*/
public TextPosition getEnd() {
return end;
}
@Override
public int hashCode() {
return start.hashCode() ^ end.hashCode();
}
@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (o != null && o.getClass().equals(getClass())) {
TextRange other = (TextRange) o;
return start.equals(other.getStart()) && end.equals(other.getEnd());
}
return false;
}
@Override
public String toString() {
return "Text range from: '" + getStart() + "', to: '" + getEnd() + "'";
}
@Override
public String getDescription() {
return start.getDescription();
}
}