Changed license to Creative Commons Zero (CC0).
[sixth-3d.git] / src / main / java / eu / svjatoslav / sixth / e3d / gui / TextPointer.java
1 /*
2  * Sixth 3D engine. Author: Svjatoslav Agejenko. 
3  * This project is released under Creative Commons Zero (CC0) license.
4  *
5 *
6  */
7
8 package eu.svjatoslav.sixth.e3d.gui;
9
10 public class TextPointer implements Comparable<TextPointer> {
11
12     public int row;
13     public int column;
14
15     public TextPointer() {
16         this(0, 0);
17     }
18
19     public TextPointer(final int row, final int column) {
20         this.row = row;
21         this.column = column;
22     }
23
24     public TextPointer(final TextPointer parent) {
25         this(parent.row, parent.column);
26     }
27
28     @Override
29     public boolean equals(final Object o) {
30         if (o == null) return false;
31
32         return o instanceof TextPointer && compareTo((TextPointer) o) == 0;
33     }
34
35     @Override
36     public int hashCode() {
37         int result = row;
38         result = 31 * result + column;
39         return result;
40     }
41
42     @Override
43     public int compareTo(final TextPointer textPointer) {
44
45         if (textPointer.row > row)
46             return -1;
47         if (textPointer.row < row)
48             return 1;
49
50         return Integer.compare(column, textPointer.column);
51
52     }
53
54     public boolean isBetween(final TextPointer start, final TextPointer end) {
55
56         if (start == null)
57             return false;
58
59         if (end == null)
60             return false;
61
62         TextPointer smaller;
63         TextPointer bigger;
64
65         if (end.compareTo(start) >= 0) {
66             smaller = start;
67             bigger = end;
68         } else {
69             smaller = end;
70             bigger = start;
71         }
72
73         return (compareTo(smaller) >= 0) && (bigger.compareTo(this) > 0);
74
75     }
76
77 }