]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/Name.java
ADD: correct hashCode for the Name object
[gigi.git] / src / org / cacert / gigi / Name.java
index 865090f0071670d50dcfc20847c1c61b99924370..93b361efb377afd2c329215778e676f6e01a0041 100644 (file)
@@ -3,57 +3,102 @@ package org.cacert.gigi;
 import java.io.PrintWriter;
 import java.util.Map;
 
+import org.cacert.gigi.localisation.Language;
 import org.cacert.gigi.output.Outputable;
 
 public class Name implements Outputable {
-       String fname;
-       String mname;
-       String lname;
-       String suffix;
-
-       public Name(String fname, String lname, String mname, String suffix) {
-               this.fname = fname;
-               this.lname = lname;
-               this.mname = mname;
-               this.suffix = suffix;
-       }
-
-       @Override
-       public void output(PrintWriter out, Language l, Map<String, Object> vars) {
-               out.println("<span class=\"accountdetail\">");
-               out.print("<span class=\"fname\">");
-               out.print(fname);
-               out.print("</span> ");
-               out.print("<span class=\"lname\">");
-               out.print(lname);
-               out.print("</span>");
-               out.println("</span>");
-       }
-
-       @Override
-       public boolean equals(Object obj) {
-               if (!(obj instanceof Name)) {
-                       return false;
-               }
-               Name n = (Name) obj;
-               if (!(n.fname.equals(fname) && n.lname.equals(lname))) {
-                       return false;
-               }
-               if (mname == null) {
-                       if (n.mname != null) {
-                               return false;
-                       }
-               } else if (!mname.equals(n.mname)) {
-                       return false;
-               }
-               if (suffix == null) {
-                       if (n.suffix != null) {
-                               return false;
-                       }
-               } else if (!suffix.equals(n.suffix)) {
-                       return false;
-               }
-               return true;
-
-       }
+
+    String fname;
+
+    String mname;
+
+    String lname;
+
+    String suffix;
+
+    public Name(String fname, String lname, String mname, String suffix) {
+        this.fname = fname;
+        this.lname = lname;
+        this.mname = mname;
+        this.suffix = suffix;
+    }
+
+    @Override
+    public void output(PrintWriter out, Language l, Map<String, Object> vars) {
+        out.println("<span class=\"accountdetail\">");
+        out.print("<span class=\"fname\">");
+        out.print(fname);
+        out.print("</span> ");
+        out.print("<span class=\"lname\">");
+        out.print(lname);
+        out.print("</span>");
+        out.println("</span>");
+    }
+
+    @Override
+    public String toString() {
+        return fname + " " + lname;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((fname == null) ? 0 : fname.hashCode());
+        result = prime * result + ((lname == null) ? 0 : lname.hashCode());
+        result = prime * result + ((mname == null) ? 0 : mname.hashCode());
+        result = prime * result + ((suffix == null) ? 0 : suffix.hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (obj == null) {
+            return false;
+        }
+        if (getClass() != obj.getClass()) {
+            return false;
+        }
+        Name other = (Name) obj;
+        if (fname == null) {
+            if (other.fname != null) {
+                return false;
+            }
+        } else if ( !fname.equals(other.fname)) {
+            return false;
+        }
+        if (lname == null) {
+            if (other.lname != null) {
+                return false;
+            }
+        } else if ( !lname.equals(other.lname)) {
+            return false;
+        }
+        if (mname == null) {
+            if (other.mname != null) {
+                return false;
+            }
+        } else if ( !mname.equals(other.mname)) {
+            return false;
+        }
+        if (suffix == null) {
+            if (other.suffix != null) {
+                return false;
+            }
+        } else if ( !suffix.equals(other.suffix)) {
+            return false;
+        }
+        return true;
+    }
+
+    public boolean matches(String text) {
+        return text.equals(fname + " " + lname) || //
+                (mname != null && text.equals(fname + " " + mname + " " + lname)) || //
+                (suffix != null && text.equals(fname + " " + lname + " " + suffix)) || //
+                (mname != null && suffix != null && text.equals(fname + " " + mname + " " + lname + " " + suffix));
+    }
+
 }