lib.jGroupware.contacts
Class AddressBook

java.lang.Object
  extended bylib.jGroupware.contacts.AddressBook
All Implemented Interfaces:
BeanFactory

public class AddressBook
extends java.lang.Object
implements BeanFactory

The core Address Book Provides the functions for loading and saving collections of Contacts from various sources. Will use Database and RegEx classes from lib.jGroupware.utils to do actual work.

Author:
Gareth Webber

Constructor Summary
AddressBook()
          Set up internally used maps:
 
Method Summary
 java.lang.Object createBean(int id)
          Method called by Database class during a load Returns a bean for it to populate
 java.util.Collection createCollectionFromFile(java.sql.Connection mySQLConnection, User user, java.lang.String filename)
          Import database from vCard file
 java.util.Collection createCollectionFromString(java.sql.Connection mySQLConnection, User user, java.lang.String dataFile)
          Import database from vCard file
 void deleteAll(java.sql.Connection mySQLConnection, User user)
          Delete all users contacts.
 java.util.Collection findAll(java.sql.Connection mySQLConnection, User user)
          Load contents of database into Collection Records loaded are appended (this method does not clear collection out first)
 java.util.Collection findByEmail(java.sql.Connection mySQLConnection, User user, java.lang.String match)
          Return collection of contacts with email contains match
 Contact findByID(java.sql.Connection mySQLConnection, User user, java.lang.String match)
          Return a contact based on a given ID
 java.util.Collection findBySurname(java.sql.Connection mySQLConnection, User user, java.lang.String match)
          Return collection of contacts with surname beginning with match
 java.lang.String getDebugOutput(java.util.Collection Contacts)
          Returns the contents of the address book in human readable form
 int getNewID(java.sql.Connection mySQLConnection)
          Get an unused ID for use my a new bean
 void saveAll(java.sql.Connection mySQLConnection, User user, java.util.Collection Contacts)
          Save contents of collection into database.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AddressBook

public AddressBook()
Set up internally used maps:

Method Detail

findAll

public java.util.Collection findAll(java.sql.Connection mySQLConnection,
                                    User user)
                             throws DatabaseErrorException
Load contents of database into Collection Records loaded are appended (this method does not clear collection out first)

Parameters:
mySQLConnection - Description of the Parameter
user - Description of the Parameter
Returns:
Description of the Return Value
Throws:
DatabaseErrorException - Description of the Exception

findBySurname

public java.util.Collection findBySurname(java.sql.Connection mySQLConnection,
                                          User user,
                                          java.lang.String match)
                                   throws DatabaseErrorException
Return collection of contacts with surname beginning with match

Parameters:
match - Surname to match
mySQLConnection - Connection to database
user - Description of the Parameter
Returns:
Collection of contacts matching "match"
Throws:
DatabaseErrorException - Database Error

findByEmail

public java.util.Collection findByEmail(java.sql.Connection mySQLConnection,
                                        User user,
                                        java.lang.String match)
                                 throws DatabaseErrorException
Return collection of contacts with email contains match

Parameters:
match - Surname to match
mySQLConnection - Connection to database
user - Description of the Parameter
Returns:
Collection of contacts matching "match"
Throws:
DatabaseErrorException - Database Error

findByID

public Contact findByID(java.sql.Connection mySQLConnection,
                        User user,
                        java.lang.String match)
                 throws DatabaseErrorException
Return a contact based on a given ID

Parameters:
match - ID of element
mySQLConnection - Connection to database
user - Description of the Parameter
Returns:
Collection of contacts matching "match"
Throws:
DatabaseErrorException - Database Error

saveAll

public void saveAll(java.sql.Connection mySQLConnection,
                    User user,
                    java.util.Collection Contacts)
             throws DatabaseErrorException
Save contents of collection into database.

Parameters:
mySQLConnection - Connection to database
Contacts - Collection of contacts to save
user - Description of the Parameter
Throws:
DatabaseErrorException - Database Error

deleteAll

public void deleteAll(java.sql.Connection mySQLConnection,
                      User user)
               throws DatabaseErrorException
Delete all users contacts.

Parameters:
mySQLConnection - Description of the Parameter
user - Description of the Parameter
Throws:
DatabaseErrorException - Description of the Exception

createBean

public java.lang.Object createBean(int id)
Method called by Database class during a load Returns a bean for it to populate

Specified by:
createBean in interface BeanFactory
Parameters:
id - Id passed into new bean
Returns:
New Contact bean

getNewID

public int getNewID(java.sql.Connection mySQLConnection)
             throws DatabaseErrorException
Get an unused ID for use my a new bean

Specified by:
getNewID in interface BeanFactory
Parameters:
mySQLConnection - Description of the Parameter
Returns:
Unused ID for contact
Throws:
DatabaseErrorException - Thrown if method cannot get a valid ID from the database

getDebugOutput

public java.lang.String getDebugOutput(java.util.Collection Contacts)
Returns the contents of the address book in human readable form

Parameters:
Contacts - Description of the Parameter
Returns:
Address book

createCollectionFromFile

public java.util.Collection createCollectionFromFile(java.sql.Connection mySQLConnection,
                                                     User user,
                                                     java.lang.String filename)
                                              throws AddressbookNotFoundException,
                                                     NoResultsFromSearchException
Import database from vCard file

Parameters:
mySQLConnection - Connection to datbase (used to get new ID)
user - User (used to get ID for owner attribute)
filename - File to operate on
Returns:
Collection of imported records
Throws:
AddressbookNotFoundException - File cannot found
NoResultsFromSearchException - Description of the Exception

createCollectionFromString

public java.util.Collection createCollectionFromString(java.sql.Connection mySQLConnection,
                                                       User user,
                                                       java.lang.String dataFile)
                                                throws AddressbookNotFoundException,
                                                       NoResultsFromSearchException
Import database from vCard file

Parameters:
mySQLConnection - Connection to datbase (used to get new ID)
user - User (used to get ID for owner attribute)
dataFile - Description of the Parameter
Returns:
Collection of imported records
Throws:
AddressbookNotFoundException - File cannot found
NoResultsFromSearchException - Description of the Exception