1 package org.musicontroller.core;
2
3 import java.util.HashSet;
4 import java.util.Set;
5
6 public class Band extends LinkableAbs {
7 private String sortname;
8 private Link link;
9 private Set<Contract_BA> artists;
10
11 public Band() {
12 sortname="";
13 link=null;
14 artists=new HashSet<Contract_BA>();
15 }
16
17 public Link getLink() {
18 return link;
19 }
20
21 public void setLink(Link link) {
22 this.link = link;
23 }
24
25
26
27
28
29
30 public void setName(String name) {
31 super.setName(name);
32 sortname = generateSortname(getName());
33 }
34
35 public String getSortname() {
36 return sortname;
37 }
38
39 public void setSortname(String sortname) {
40
41 }
42
43 public Set<Contract_BA> getArtists() {
44 return artists;
45 }
46
47 public void setArtists(Set<Contract_BA> artists) {
48 if (artists!=null) this.artists = artists;
49 }
50
51
52
53
54
55
56
57 private String generateSortname(String name) {
58 String result = "";
59 if (name!=null) {
60 result += name.toLowerCase();
61 result = result.replaceFirst("the |de ","");
62
63
64 result = result.trim();
65 if (result.length()>16) {
66 result = result.substring(0,16);
67 }
68 }
69 return result;
70 }
71
72
73
74
75
76 @Override
77 public boolean equals(Object o) {
78 boolean result = false;
79 if (this==o) {
80 result = true;
81 } else {
82 if (o instanceof Band) {
83 Band other = (Band) o;
84 if(this.getName()==null) {
85 result = other.getName()==null;
86 } else {
87 result = this.getName().equalsIgnoreCase(other.getName());
88 }
89 }
90 }
91 return result;
92 }
93
94
95
96
97
98 @Override
99 public int hashCode() {
100 return Long.valueOf(getId()).hashCode();
101 }
102
103
104
105
106
107 @Override
108 public String toString() {
109 StringBuilder sb = new StringBuilder();
110 sb.append("[");
111 sb.append(getId());
112 sb.append("] ");
113 sb.append(getName());
114 return sb.toString();
115 }
116
117 public String getType() {
118 return "B";
119 }
120 }