esmska.data
Class Contact

java.lang.Object
  extended by esmska.data.Contact
All Implemented Interfaces:
java.lang.Comparable<Contact>

public class Contact
extends java.lang.Object
implements java.lang.Comparable<Contact>

SMS Contact entity


Constructor Summary
Contact(Contact c)
          Create new contact with properties copied from provided contact
Contact(java.lang.String name, java.lang.String number, java.lang.String gateway)
          Create new contact.
 
Method Summary
 void addPropertyChangeListener(java.beans.PropertyChangeListener listener)
           
static java.lang.String anonymizeNumber(java.lang.String number)
          Modify (phone) number into anonymous one
 int compareTo(Contact c)
           
 void copyFrom(Contact c)
          Copy all contact properties from provided contact to current contact
 boolean equals(java.lang.Object obj)
           
 java.lang.String getGateway()
          Get gateway.
 java.lang.String getName()
          Get contact name.
 java.lang.String getNumber()
          Get valid full phone number including the country code (starting with "+") or empty string.
 int hashCode()
           
static boolean isValidNumber(java.lang.String number)
          Check validity of phone number
static java.lang.String parseNumber(java.lang.String number)
          Try to extract valid number from some local format (like "(1) 222 333") and convert it into international number.
 void removePropertyChangeListener(java.beans.PropertyChangeListener listener)
           
 void setGateway(java.lang.String gateway)
          Set contact gateway
 void setName(java.lang.String name)
          Set contact name.
 void setNumber(java.lang.String number)
          Set full phone number.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Contact

public Contact(Contact c)
Create new contact with properties copied from provided contact


Contact

public Contact(java.lang.String name,
               java.lang.String number,
               java.lang.String gateway)
Create new contact. For detailed parameters restrictions see individual setter methods.

Method Detail

addPropertyChangeListener

public void addPropertyChangeListener(java.beans.PropertyChangeListener listener)

removePropertyChangeListener

public void removePropertyChangeListener(java.beans.PropertyChangeListener listener)

copyFrom

public void copyFrom(Contact c)
Copy all contact properties from provided contact to current contact


getName

public java.lang.String getName()
Get contact name. Never null.


getNumber

public java.lang.String getNumber()
Get valid full phone number including the country code (starting with "+") or empty string. Never null.


getGateway

public java.lang.String getGateway()
Get gateway. Never null.


setName

public void setName(java.lang.String name)
Set contact name.

Parameters:
name - contact name. Null value is changed to empty string.

setNumber

public void setNumber(java.lang.String number)
Set full phone number.

Parameters:
number - new contact number. Must be valid (see isValidNumber(java.lang.String)) or an empty string. Null value is changed to an empty string.

setGateway

public void setGateway(java.lang.String gateway)
Set contact gateway

Parameters:
gateway - new gateway. Null value is changed to "unknown" gateway.

isValidNumber

public static boolean isValidNumber(java.lang.String number)
Check validity of phone number

Returns:
true if number is in form +[0-9]{2,15} with valid country prefix, false otherwise

anonymizeNumber

public static java.lang.String anonymizeNumber(java.lang.String number)
Modify (phone) number into anonymous one

Parameters:
number - (phone) number, may be null
Returns:
the same string with all the numbers replaced by 'N'

parseNumber

public static java.lang.String parseNumber(java.lang.String number)
Try to extract valid number from some local format (like "(1) 222 333") and convert it into international number.

Parameters:
number - number in non-standard format; may be null
Returns:
parsed valid (international) number or null

compareTo

public int compareTo(Contact c)
Specified by:
compareTo in interface java.lang.Comparable<Contact>

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

equals

public boolean equals(java.lang.Object obj)
Overrides:
equals in class java.lang.Object

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object