import javax.persistence.Index;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
@Index (
name = "contact_gender",
columnList = "contact_gender"
- ),
- @Index (
- name = "contact_email_address",
- unique = true,
- columnList = "contact_email_address"
)
}
)
+@NamedQueries (
+ {
+ @NamedQuery (name = "AllContacts", query = "SELECT c FROM contacts AS c ORDER BY c.contactId ASC"),
+ @NamedQuery (name = "AllContactEmailAddresses", query = "SELECT c.contactEmailAddress FROM contacts AS c ORDER BY c.contactId ASC"),
+ @NamedQuery (name = "AllContactsByCellphone", query = "SELECT c FROM contacts AS c WHERE c.contactCellphoneNumber = :cellPhone ORDER BY c.contactId ASC"),
+ @NamedQuery (name = "SearchContactById", query = "SELECT c FROM contacts AS c WHERE c.contactId = :contactId"),
+ @NamedQuery (name = "SearchContactByEmailAddress", query = "SELECT c FROM contacts AS c WHERE LOWER(c.contactEmailAddress) LIKE LOWER(:emailAddress)")
+ }
+)
+@SuppressWarnings ("PersistenceUnitPresent")
public class UserContact implements Contact {
/**
/**
* Email address
*/
- @Basic (optional = false)
- @Column (name = "contact_email_address", length = 100, nullable = false)
+ @Column (name = "contact_email_address", length = 100, unique = true)
private String contactEmailAddress;
/**
* House number
*/
@Basic (optional = false)
- @Column (name = "contact_house_number", length = 5, nullable = false)
+ @Column (name = "contact_house_number", nullable = false)
private Short contactHouseNumber;
+ /**
+ * House number extension
+ */
+ @Column (name = "contact_house_number_extension", length = 5)
+ private String contactHouseNumberExtension;
+
/**
* Id number
*/
public UserContact () {
// Default is not user's own contact
this.contactOwnContact = Boolean.FALSE;
-
- // Unknown gender
- this.contactGender = Gender.UNKNOWN;
}
/**
* Constructor for contactGender and names
* <p>
- * @param contactGender Gender instance
- * @param contactFirstName First name
+ * @param contactGender Gender instance
+ * @param contactFirstName First name
* @param contactFamilyName Family name
*/
public UserContact (final Gender contactGender, final String contactFirstName, final String contactFamilyName) {
@Override
public void copyAll (final Contact contact) {
+ // Contact should be valid
+ if (null == contact) {
+ // Throw NPE
+ throw new NullPointerException("contact is null"); //NOI18N
+ }
+
// Copy all:
// - base data
+ this.setContactGender(contact.getContactGender());
+ this.setContactTitle(contact.getContactTitle());
this.setContactFirstName(contact.getContactFirstName());
this.setContactFamilyName(contact.getContactFamilyName());
this.setContactStreet(contact.getContactStreet());
+ this.setContactHouseNumber(contact.getContactHouseNumber());
+ this.setContactHouseNumberExtension(contact.getContactHouseNumberExtension());
this.setContactZipCode(contact.getContactZipCode());
this.setContactCity(contact.getContactCity());
this.setContactCountry(contact.getContactCountry());
@Override
public boolean equals (final Object object) {
- // Is it same type?
- if (!(object instanceof UserContact)) {
- // Not equal types
+ if (this == object) {
+ return true;
+ } else if (null == object) {
+ return false;
+ } else if (this.getClass() != object.getClass()) {
return false;
} else if (!(object instanceof Contact)) {
// Not correct interface
return false;
}
- // Try to cast
- Contact contact = (Contact) object;
-
- // Now test some data TODO Definedly needs improvement
- return ((this.getContactGender().equals(contact.getContactGender())) &&
- (this.getContactFirstName().toLowerCase().equals(contact.getContactFirstName().toLowerCase())) &&
- (this.getContactFamilyName().toLowerCase().equals(contact.getContactFamilyName().toLowerCase())));
- }
+ final Contact other = (Contact) object;
- @Override
- public int hashCode () {
- // Validate contactGender instance
- assert (this.getContactGender() instanceof Gender) : "gender is not set."; //NOI18N
+ if (!Objects.equals(this.getContactCity(), other.getContactCity())) {
+ return false;
+ } else if (!Objects.equals(this.getContactEmailAddress(), other.getContactEmailAddress())) {
+ return false;
+ } else if (!Objects.equals(this.getContactFamilyName(), other.getContactFamilyName())) {
+ return false;
+ } else if (!Objects.equals(this.getContactFirstName(), other.getContactFirstName())) {
+ return false;
+ } else if (!Objects.equals(this.getContactStreet(), other.getContactStreet())) {
+ return false;
+ } else if (!Objects.equals(this.getContactTitle(), other.getContactTitle())) {
+ return false;
+ } else if (!Objects.equals(this.getContactBirthday(), other.getContactBirthday())) {
+ return false;
+ } else if (!Objects.equals(this.getContactCountry(), other.getContactCountry())) {
+ return false;
+ } else if (this.getContactGender() != other.getContactGender()) {
+ return false;
+ } else if (!Objects.equals(this.getContactHouseNumber(), other.getContactHouseNumber())) {
+ return false;
+ } else if (!Objects.equals(this.getContactHouseNumberExtension(), other.getContactHouseNumberExtension())) {
+ return false;
+ } else if (!Objects.equals(this.getContactId(), other.getContactId())) {
+ return false;
+ }
- int hash = 7;
- hash = 79 * hash + Objects.hashCode(this.getContactFamilyName());
- hash = 79 * hash + this.getContactGender().hashCode();
- hash = 79 * hash + Objects.hashCode(this.getContactFirstName());
- return hash;
+ return true;
}
@Override
+ @SuppressWarnings ("ReturnOfDateField")
public Date getContactBirthday () {
return this.contactBirthday;
}
@Override
+ @SuppressWarnings ("AssignmentToDateFieldFromParameter")
public void setContactBirthday (final Date contactBirthday) {
this.contactBirthday = contactBirthday;
}
}
@Override
+ @SuppressWarnings ("ReturnOfDateField")
public Calendar getContactCreated () {
return this.contactCreated;
}
@Override
+ @SuppressWarnings ("AssignmentToDateFieldFromParameter")
public void setContactCreated (final Calendar contactCreated) {
this.contactCreated = contactCreated;
}
this.contactHouseNumber = contactHouseNumber;
}
+ @Override
+ public String getContactHouseNumberExtension () {
+ return this.contactHouseNumberExtension;
+ }
+
+ @Override
+ public void setContactHouseNumberExtension (final String contactHouseNumberExtension) {
+ this.contactHouseNumberExtension = contactHouseNumberExtension;
+ }
+
@Override
public Long getContactId () {
return this.contactId;
this.contactId = contactId;
}
- @Override
- public void setContactOwnContact (final Boolean contactOwnContact) {
- this.contactOwnContact = contactOwnContact;
- }
-
@Override
public DialableLandLineNumber getContactLandLineNumber () {
return this.contactPhoneNumber;
this.contactPhoneNumber = contactPhoneNumber;
}
+ @Override
+ public void setContactOwnContact (final Boolean contactOwnContact) {
+ this.contactOwnContact = contactOwnContact;
+ }
+
@Override
public String getContactStreet () {
return this.contactStreet;
}
@Override
+ @SuppressWarnings ("ReturnOfDateField")
public Calendar getContactUpdated () {
return this.contactUpdated;
}
@Override
+ @SuppressWarnings ("AssignmentToDateFieldFromParameter")
public void setContactUpdated (final Calendar contactUpdated) {
this.contactUpdated = contactUpdated;
}
this.contactZipCode = contactZipCode;
}
+ @Override
+ public int hashCode () {
+ int hash = 5;
+
+ hash = 29 * hash + Objects.hashCode(this.getContactBirthday());
+ hash = 29 * hash + Objects.hashCode(this.getContactCity());
+ hash = 29 * hash + Objects.hashCode(this.getContactCountry());
+ hash = 29 * hash + Objects.hashCode(this.getContactEmailAddress());
+ hash = 29 * hash + Objects.hashCode(this.getContactFamilyName());
+ hash = 29 * hash + Objects.hashCode(this.getContactFirstName());
+ hash = 29 * hash + Objects.hashCode(this.getContactGender());
+ hash = 29 * hash + Objects.hashCode(this.getContactHouseNumber());
+ hash = 29 * hash + Objects.hashCode(this.getContactHouseNumberExtension());
+ hash = 29 * hash + Objects.hashCode(this.getContactId());
+ hash = 29 * hash + Objects.hashCode(this.getContactStreet());
+ hash = 29 * hash + Objects.hashCode(this.getContactTitle());
+
+ return hash;
+ }
+
@Override
public Boolean isOwnContact () {
return this.contactOwnContact;
}
+
}