import java.util.*;
class ideone {
public static void main
(String[] args
) { UserProgressModel model=new UserProgressModel("test@test.com");
System.
out.
println(model.
equals("test"));
UserProgressModel model2=new UserProgressModel("test@test.com");
System.
out.
println(model2.
equals("test@test.com"));
List<UserProgressModel> retUserProgress = new ArrayList<UserProgressModel>();
retUserProgress.add(model);
System.
out.
println(retUserProgress.
contains(new UserProgressModel
("test@test.com")));
}
}
class UserProgressModel {
public UserProgressModel
(String pEmail
) { super();
this.email = pEmail;
}
@Override
public boolean equals
(Object x
) {
if (x != null && x instanceof UserProgressModel
&& ((UserProgressModel) x).email.equals(this.email) == true) {
return true;
}
if (x
!= null && x
instanceof String && x.equals(this.email) == true) {
return true;
}
return false;
}
@Override
public int hashCode() {
int hash = 7;
hash = 17 * hash + (this.email != null ? this.email.hashCode() : 0);
return hash;
}
}
aW1wb3J0IGphdmEudXRpbC4qOwoKY2xhc3MgaWRlb25lIHsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKCQlVc2VyUHJvZ3Jlc3NNb2RlbCBtb2RlbD1uZXcgVXNlclByb2dyZXNzTW9kZWwoInRlc3RAdGVzdC5jb20iKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4obW9kZWwuZXF1YWxzKCJ0ZXN0IikpOwoJCQoJCVVzZXJQcm9ncmVzc01vZGVsIG1vZGVsMj1uZXcgVXNlclByb2dyZXNzTW9kZWwoInRlc3RAdGVzdC5jb20iKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4obW9kZWwyLmVxdWFscygidGVzdEB0ZXN0LmNvbSIpKTsKCQkKCQlMaXN0PFVzZXJQcm9ncmVzc01vZGVsPiByZXRVc2VyUHJvZ3Jlc3MgPSBuZXcgQXJyYXlMaXN0PFVzZXJQcm9ncmVzc01vZGVsPigpOwoJCQoJCXJldFVzZXJQcm9ncmVzcy5hZGQobW9kZWwpOwoJCQoJCVN5c3RlbS5vdXQucHJpbnRsbihyZXRVc2VyUHJvZ3Jlc3MuY29udGFpbnMobmV3IFVzZXJQcm9ncmVzc01vZGVsKCJ0ZXN0QHRlc3QuY29tIikpKTsKCQkKCX0KfQpjbGFzcyBVc2VyUHJvZ3Jlc3NNb2RlbCB7CgogICAgcHJpdmF0ZSBTdHJpbmcgZW1haWw7CgogICAgcHVibGljIFVzZXJQcm9ncmVzc01vZGVsKFN0cmluZyBwRW1haWwpIHsKICAgICAgICBzdXBlcigpOwoKICAgICAgICB0aGlzLmVtYWlsID0gcEVtYWlsOwogICAgfQoKICAgIEBPdmVycmlkZQogICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCB4KSB7CgogICAgICAgIGlmICh4ICE9IG51bGwgJiYgeCBpbnN0YW5jZW9mIFVzZXJQcm9ncmVzc01vZGVsCiAgICAgICAgICAgICAgICAmJiAoKFVzZXJQcm9ncmVzc01vZGVsKSB4KS5lbWFpbC5lcXVhbHModGhpcy5lbWFpbCkgPT0gdHJ1ZSkgewoKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQoKICAgICAgICBpZiAoeCAhPSBudWxsICYmIHggaW5zdGFuY2VvZiBTdHJpbmcKICAgICAgICAgICAgICAgICYmIHguZXF1YWxzKHRoaXMuZW1haWwpID09IHRydWUpIHsKCiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIEBPdmVycmlkZQogICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKICAgICAgICBpbnQgaGFzaCA9IDc7CiAgICAgICAgaGFzaCA9IDE3ICogaGFzaCArICh0aGlzLmVtYWlsICE9IG51bGwgPyB0aGlzLmVtYWlsLmhhc2hDb2RlKCkgOiAwKTsKICAgICAgICByZXR1cm4gaGFzaDsKICAgIH0KfQo=