2 * Sixth 3D engine. Author: Svjatoslav Agejenko.
3 * This project is released under Creative Commons Zero (CC0) license.
5 package eu.svjatoslav.sixth.e3d.gui;
8 * A pointer to a character in a text.
10 public class TextPointer implements Comparable<TextPointer> {
15 public TextPointer() {
19 public TextPointer(final int row, final int column) {
24 public TextPointer(final TextPointer parent) {
25 this(parent.row, parent.column);
29 public boolean equals(final Object o) {
30 if (o == null) return false;
32 return o instanceof TextPointer && compareTo((TextPointer) o) == 0;
36 public int hashCode() {
38 result = 31 * result + column;
43 public int compareTo(final TextPointer textPointer) {
45 if (textPointer.row > row)
47 if (textPointer.row < row)
50 return Integer.compare(column, textPointer.column);
55 * Checks if this pointer is between the specified pointers.
57 * @param start The start pointer.
58 * @param end The end pointer.
59 * @return True if this pointer is between the specified pointers.
61 public boolean isBetween(final TextPointer start, final TextPointer end) {
69 // Make sure that start is smaller than end.
73 if (end.compareTo(start) >= 0) {
81 // Check if this pointer is between the specified pointers.
82 return (compareTo(smaller) >= 0) && (bigger.compareTo(this) > 0);