+ return name.equals(s.name) && email.equals(s.email) && dob.toString().equals(s.dob.toString()); // This
+ // is
+ // due
+ // to
+ // day
+ // cutoff
+ }
+
+ /**
+ * Gets the maximum allowed points NOW. Note that an assurance needs to
+ * re-check PoJam as it has taken place in the past.
+ *
+ * @return the maximal points
+ * @throws SQLException
+ */
+ public int getMaxAssurePoints() throws SQLException {
+ int exp = getExperiencePoints();
+ int points = 10;
+ Calendar c = Calendar.getInstance();
+ c.setTime(dob);
+ int year = c.get(Calendar.YEAR);
+ int month = c.get(Calendar.MONTH);
+ int day = c.get(Calendar.DAY_OF_MONTH);
+ c.set(year + 18, month, day);
+ if (System.currentTimeMillis() < c.getTime().getTime()) {
+ return points; // not 18 Years old.
+ }
+
+ if (exp >= 10) {
+ points += 5;
+ }
+ if (exp >= 20) {
+ points += 5;
+ }
+ if (exp >= 30) {
+ points += 5;
+ }
+ if (exp >= 40) {
+ points += 5;
+ }
+ if (exp >= 50) {
+ points += 5;
+ }
+ return points;