]> WPIA git - gigi.git/blob - src/org/cacert/gigi/dbObjects/Name.java
Test+implement: object cache for email and domain.
[gigi.git] / src / org / cacert / gigi / dbObjects / Name.java
1 package org.cacert.gigi.dbObjects;
2
3 import java.io.PrintWriter;
4 import java.util.Map;
5
6 import org.cacert.gigi.localisation.Language;
7 import org.cacert.gigi.output.Outputable;
8
9 public class Name implements Outputable {
10
11     String fname;
12
13     String mname;
14
15     String lname;
16
17     String suffix;
18
19     public Name(String fname, String lname, String mname, String suffix) {
20         this.fname = fname;
21         this.lname = lname;
22         this.mname = mname;
23         this.suffix = suffix;
24     }
25
26     @Override
27     public void output(PrintWriter out, Language l, Map<String, Object> vars) {
28         out.println("<span class=\"accountdetail\">");
29         out.print("<span class=\"fname\">");
30         out.print(fname);
31         out.print("</span> ");
32         out.print("<span class=\"lname\">");
33         out.print(lname);
34         out.print("</span>");
35         out.println("</span>");
36     }
37
38     @Override
39     public String toString() {
40         return fname + " " + lname;
41     }
42
43     @Override
44     public int hashCode() {
45         final int prime = 31;
46         int result = 1;
47         result = prime * result + ((fname == null) ? 0 : fname.hashCode());
48         result = prime * result + ((lname == null) ? 0 : lname.hashCode());
49         result = prime * result + ((mname == null) ? 0 : mname.hashCode());
50         result = prime * result + ((suffix == null) ? 0 : suffix.hashCode());
51         return result;
52     }
53
54     @Override
55     public boolean equals(Object obj) {
56         if (this == obj) {
57             return true;
58         }
59         if (obj == null) {
60             return false;
61         }
62         if (getClass() != obj.getClass()) {
63             return false;
64         }
65         Name other = (Name) obj;
66         if (fname == null) {
67             if (other.fname != null) {
68                 return false;
69             }
70         } else if ( !fname.equals(other.fname)) {
71             return false;
72         }
73         if (lname == null) {
74             if (other.lname != null) {
75                 return false;
76             }
77         } else if ( !lname.equals(other.lname)) {
78             return false;
79         }
80         if (mname == null) {
81             if (other.mname != null) {
82                 return false;
83             }
84         } else if ( !mname.equals(other.mname)) {
85             return false;
86         }
87         if (suffix == null) {
88             if (other.suffix != null) {
89                 return false;
90             }
91         } else if ( !suffix.equals(other.suffix)) {
92             return false;
93         }
94         return true;
95     }
96
97     public boolean matches(String text) {
98         return text.equals(fname + " " + lname) || //
99                 (mname != null && text.equals(fname + " " + mname + " " + lname)) || //
100                 (suffix != null && text.equals(fname + " " + lname + " " + suffix)) || //
101                 (mname != null && suffix != null && text.equals(fname + " " + mname + " " + lname + " " + suffix));
102     }
103
104 }