/*
- * 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
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;
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 (
@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")
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
@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
/**
* 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);
/**
* 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
// 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) {
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())) {
}
@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
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;
}
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());