1 package com.aragost.javahg.commands;
2
3 import com.aragost.javahg.Changeset;
4
5 public class Tag implements Comparable<Tag> {
6
7 private final String name;
8 private final Changeset changeset;
9 private final boolean local;
10
11 public Tag(String name, Changeset changeset, boolean local) {
12 this.name = name;
13 this.changeset = changeset;
14 this.local = local;
15 }
16
17 public String getName() {
18 return name;
19 }
20
21 public Changeset getChangeset() {
22 return changeset;
23 }
24
25 public boolean isLocal() {
26 return local;
27 }
28
29 public int compareTo(Tag that) {
30 return this.getName().compareTo(that.getName());
31 }
32
33 @Override
34 public String toString() {
35 return "tag[" + getName() + "]";
36 }
37
38 @Override
39 public int hashCode() {
40 final int prime = 31;
41 int result = 1;
42 result = prime * result
43 + ((changeset == null) ? 0 : changeset.hashCode());
44 result = prime * result + (local ? 1231 : 1237);
45 result = prime * result + ((name == null) ? 0 : name.hashCode());
46 return result;
47 }
48
49 @Override
50 public boolean equals(Object obj) {
51 if (this == obj)
52 return true;
53 if (obj == null)
54 return false;
55 if (getClass() != obj.getClass())
56 return false;
57 Tag other = (Tag) obj;
58 if (changeset == null) {
59 if (other.changeset != null)
60 return false;
61 } else if (!changeset.equals(other.changeset))
62 return false;
63 if (local != other.local)
64 return false;
65 if (name == null) {
66 if (other.name != null)
67 return false;
68 } else if (!name.equals(other.name))
69 return false;
70 return true;
71 }
72
73 }