]> git.mxchange.org Git - juser-activity-core.git/blobdiff - src/org/mxchange/jusercore/model/user/activity/UserActivityLog.java
Continued:
[juser-activity-core.git] / src / org / mxchange / jusercore / model / user / activity / UserActivityLog.java
index a0a0e3f325afe8ba7f14d313918bf26f54fe8673..33ccdb5daff3d2a45de0f8f5c943168efb015358 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016 Roland Haeder
+ * Copyright (C) 2016, 2017 Roland Häder
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,7 +17,7 @@
 package org.mxchange.jusercore.model.user.activity;
 
 import java.text.MessageFormat;
-import java.util.Calendar;
+import java.util.Date;
 import java.util.Objects;
 import javax.persistence.Basic;
 import javax.persistence.CascadeType;
@@ -37,14 +37,14 @@ import javax.persistence.Table;
 import javax.persistence.Temporal;
 import javax.persistence.TemporalType;
 import javax.persistence.Transient;
-import org.mxchange.jcontacts.contact.gender.Gender;
+import org.mxchange.jcontacts.model.contact.title.PersonalTitle;
 import org.mxchange.jusercore.model.user.LoginUser;
 import org.mxchange.jusercore.model.user.User;
 
 /**
- * A POJO for user acitivity log
+ * A POJO for user activity log
  * <p>
- * @author Roland Haeder<roland@mxchange.org>
+ * @author Roland Häder<roland@mxchange.org>
  */
 @Entity (name = "user_activity_log")
 @Table (
@@ -53,8 +53,7 @@ import org.mxchange.jusercore.model.user.User;
 @NamedQueries (
                {
                        @NamedQuery (name = "AllUserActivityLog", query = "SELECT a FROM user_activity_log AS a ORDER BY a.activityId DESC"),
-                       @NamedQuery (name = "FindAllUsersActivity", query = "SELECT a FROM user_activity_log AS a WHERE a.activityUser = :activityUser ORDER BY a.activityId DESC"),
-                       @NamedQuery (name = "FindUsersActivityByType", query = "SELECT a FROM user_activity_log AS a WHERE a.activityUser = :activityUser AND a.activityType LIKE :activityType ORDER BY a.activityId DESC")
+                       @NamedQuery (name = "SearchAllUsersActivity", query = "SELECT a FROM user_activity_log AS a WHERE a.activityUser = :activityUser ORDER BY a.activityId DESC")
                }
 )
 @SuppressWarnings ("PersistenceUnitPresent")
@@ -81,12 +80,12 @@ public class UserActivityLog implements LogableUserActivity {
        private String activityContactFirstName;
 
        /**
-        * Gender instance
+        * Personal title instance
         */
        @Basic (optional = false)
        @Column (name = "activity_contact_gender", nullable = false, updatable = false)
        @Enumerated (EnumType.STRING)
-       private Gender activityContactGender;
+       private PersonalTitle activityContactPersonalTitle;
 
        /**
         * Primary key
@@ -103,13 +102,19 @@ public class UserActivityLog implements LogableUserActivity {
        @Lob
        private String activityMessage;
 
+       /**
+        * Principal name
+        */
+       @Column (name = "activity_principal_name", updatable = false)
+       private String activityPrincipalName;
+
        /**
         * Timestamp
         */
        @Basic (optional = false)
        @Temporal (TemporalType.TIMESTAMP)
        @Column (name = "activity_timestamp", nullable = false, updatable = false)
-       private Calendar activityTimestamp;
+       private Date activityTimestamp;
 
        /**
         * Type
@@ -141,12 +146,12 @@ public class UserActivityLog implements LogableUserActivity {
        /**
         * Constructor with message, type and user
         * <p>
-        * @param activityMessage Message
-        * @param activityType Type
-        * @param activityUser User instance
+        * @param activityMessage   Message
+        * @param activityType      Type
+        * @param activityUser      User instance
         * @param activityTimestamp imestamp
         */
-       public UserActivityLog (final String activityMessage, final String activityType, final User activityUser, final Calendar activityTimestamp) {
+       public UserActivityLog (final String activityMessage, final String activityType, final User activityUser, final Date activityTimestamp) {
                // Call other constructor
                this(activityType, activityUser, activityTimestamp);
 
@@ -166,11 +171,11 @@ public class UserActivityLog implements LogableUserActivity {
        /**
         * Constructor with type, user and timestamp
         * <p>
-        * @param activityType Type
-        * @param activityUser User instance
+        * @param activityType      Type
+        * @param activityUser      User instance
         * @param activityTimestamp imestamp
         */
-       public UserActivityLog (final String activityType, final User activityUser, final Calendar activityTimestamp) {
+       public UserActivityLog (final String activityType, final User activityUser, final Date activityTimestamp) {
                // Make sure all is set
                if (null == activityType) {
                        // Throw NPE
@@ -208,11 +213,44 @@ public class UserActivityLog implements LogableUserActivity {
 
                // Set all user/contact fields
                this.activityUserName = activityUser.getUserName();
-               this.activityContactGender = activityUser.getUserContact().getContactGender();
+               this.activityContactPersonalTitle = activityUser.getUserContact().getContactPersonalTitle();
                this.activityContactFirstName = activityUser.getUserContact().getContactFirstName();
                this.activityContactFamilyName = activityUser.getUserContact().getContactFamilyName();
        }
 
+       /**
+        * Constructor with message, type, user, timestamp and principal name
+        * <p>
+        * @param activityMessage   Message
+        * @param activityType      Type
+        * @param activityUser      User instance
+        * @param activityTimestamp imestamp
+        * @param principalName     Principal name
+        */
+       public UserActivityLog (final String activityMessage, final String activityType, final User activityUser, final Date activityTimestamp, final String principalName) {
+               // Call other constructor
+               this(activityMessage, activityType, activityUser, activityTimestamp);
+
+               // Set principal name
+               this.activityPrincipalName = principalName;
+       }
+
+       /**
+        * Consctructor with type, user, timestamp and principal name
+        * <p>
+        * @param activityType      Type
+        * @param activityUser      User instance
+        * @param activityTimestamp imestamp
+        * @param principalName     Principal name
+        */
+       public UserActivityLog (final String activityType, final User activityUser, final Date activityTimestamp, final String principalName) {
+               // Call other constructor
+               this(activityType, activityUser, activityTimestamp);
+
+               // Set principal name
+               this.activityPrincipalName = principalName;
+       }
+
        @Override
        public boolean equals (final Object object) {
                if (this == object) {
@@ -227,6 +265,8 @@ public class UserActivityLog implements LogableUserActivity {
 
                if (!Objects.equals(this.getActivityMessage(), other.getActivityMessage())) {
                        return false;
+               } else if (!Objects.equals(this.getActivityPrincipalName(), other.getActivityPrincipalName())) {
+                       return false;
                } else if (!Objects.equals(this.getActivityType(), other.getActivityType())) {
                        return false;
                } else if (!Objects.equals(this.getActivityId(), other.getActivityId())) {
@@ -261,13 +301,13 @@ public class UserActivityLog implements LogableUserActivity {
        }
 
        @Override
-       public Gender getActivityContactGender () {
-               return this.activityContactGender;
+       public PersonalTitle getActivityContactPersonalTitle () {
+               return this.activityContactPersonalTitle;
        }
 
        @Override
-       public void setActivityContactGender (final Gender activityContactGender) {
-               this.activityContactGender = activityContactGender;
+       public void setActivityContactPersonalTitle (final PersonalTitle activityContactPersonalTitle) {
+               this.activityContactPersonalTitle = activityContactPersonalTitle;
        }
 
        @Override
@@ -290,15 +330,25 @@ public class UserActivityLog implements LogableUserActivity {
                this.activityMessage = activityMessage;
        }
 
+       @Override
+       public String getActivityPrincipalName () {
+               return this.activityPrincipalName;
+       }
+
+       @Override
+       public void setActivityPrincipalName (final String activityPrincipalName) {
+               this.activityPrincipalName = activityPrincipalName;
+       }
+
        @Override
        @SuppressWarnings ("ReturnOfDateField")
-       public Calendar getActivityTimestamp () {
+       public Date getActivityTimestamp () {
                return this.activityTimestamp;
        }
 
        @Override
        @SuppressWarnings ("AssignmentToDateFieldFromParameter")
-       public void setActivityTimestamp (final Calendar activityTimestamp) {
+       public void setActivityTimestamp (final Date activityTimestamp) {
                this.activityTimestamp = activityTimestamp;
        }
 
@@ -338,6 +388,7 @@ public class UserActivityLog implements LogableUserActivity {
 
                hash = 83 * hash + Objects.hashCode(this.getActivityId());
                hash = 83 * hash + Objects.hashCode(this.getActivityMessage());
+               hash = 83 * hash + Objects.hashCode(this.getActivityPrincipalName());
                hash = 83 * hash + Objects.hashCode(this.getActivityTimestamp());
                hash = 83 * hash + Objects.hashCode(this.getActivityType());
                hash = 83 * hash + Objects.hashCode(this.getActivityUser());