import java.io.Serializable;
import java.util.Date;
import java.util.List;
+import javax.ejb.Local;
import org.mxchange.jcontacts.contact.Contact;
import org.mxchange.jcontacts.contact.gender.Gender;
+import org.mxchange.jcontacts.events.contact.add.AdminAddedContactEvent;
+import org.mxchange.jcontacts.events.contact.deleted.AdminDeletedContactEvent;
import org.mxchange.jcontacts.events.contact.update.AdminUpdatedContactEvent;
+import org.mxchange.jcontacts.events.fax.unlinked.AdminUnlinkedFaxNumberEvent;
+import org.mxchange.jcontacts.events.landline.unlinked.AdminUnlinkedLandLineNumberEvent;
+import org.mxchange.jcontacts.events.mobile.unlinked.AdminUnlinkedMobileNumberEvent;
import org.mxchange.jcontacts.exceptions.ContactNotFoundException;
import org.mxchange.jcountry.data.Country;
+import org.mxchange.jphone.events.mobile.remove.AdminRemoveMobileNumberFromListEvent;
import org.mxchange.jphone.phonenumbers.mobileprovider.MobileProvider;
+import org.mxchange.jusercore.events.confirmation.UserConfirmedAccountEvent;
import org.mxchange.jusercore.events.login.UserLoggedInEvent;
import org.mxchange.jusercore.events.registration.UserRegisteredEvent;
import org.mxchange.jusercore.events.user.add.AdminAddedUserEvent;
+import org.mxchange.jusercore.events.user.linked.AdminLinkedUserEvent;
/**
* An interface for user beans
* <p>
* @author Roland Haeder<roland@mxchange.org>
*/
+@Local
public interface JobsContactWebSessionController extends Serializable {
/**
- * Minimum password length
+ * Returns a list of all found contacts
+ * <p>
+ * @return A list of all contacts.
*/
- public static final Integer MINIMUM_PASSWORD_LENGTH = 5;
+ List<Contact> allContacts ();
/**
- * Returns a list of all found contacts
+ * Event observer for newly added users by adminstrator
* <p>
- * @return A list of all contacts.
+ * @param event Event being fired
*/
- List<Contact> allContacts();
+ void afterAdminAddedUserEvent (final AdminAddedUserEvent event);
/**
- * Checks whether there are contacts.
+ * Event observer for deleted contact instance by administrator
* <p>
- * @return Whether contacts are there
+ * @param event Event being fired
*/
- boolean hasContacts ();
+ void afterAdminDeletedContactEvent (final AdminDeletedContactEvent event);
/**
- * Event observer for newly added users by adminstrator
+ * Event observer for unlinked fax contact by administrators
+ * <p>
+ * @param event Unlinked fax contact event
+ */
+ void afterAdminUnlinkedFaxContactDataEvent (final AdminUnlinkedFaxNumberEvent event);
+
+ /**
+ * Event observer for unlinked land-line contact by administrators
+ * <p>
+ * @param event Unlinked land-line contact event
+ */
+ void afterAdminUnlinkedLandLineContactDataEvent (final AdminUnlinkedLandLineNumberEvent event);
+
+ /**
+ * Event observer for unlinked mobile contact by administrators
+ * <p>
+ * @param event Unlinked mobile contact event
+ */
+ void afterAdminUnlinkedMobileContactDataEvent (final AdminUnlinkedMobileNumberEvent event);
+
+ /**
+ * Event observer when user confirmed account.
* <p>
* @param event Event being fired
*/
- void afterAdminAddedUserEvent (final AdminAddedUserEvent event);
+ void afterUserConfirmedAccountEventEvent (final UserConfirmedAccountEvent event);
/**
- * Updates all data from bean in given contact instance
+ * Event observer when a list with unused mobile numbers is being created
* <p>
- * @param userContact Contact instance to update
+ * @param event Event being fired
*/
- void updateContactDataFromController (final Contact userContact);
+ void removeMobileNumberFromListEvent(final AdminRemoveMobileNumberFromListEvent event);
/**
- * Adds given email address to list
+ * Updates all data from bean in given contact instance
* <p>
- * @param contactEmailAddress Email address to add
+ * @param userContact Contact instance to update
*/
- void addEmailAddress (final String contactEmailAddress);
+ void updateContactDataFromController (final Contact userContact);
/**
* Tries to lookup contact by given id number. If the user is not found a
* <p>
* @param event User registration event
*/
- void afterRegistrationEvent (final UserRegisteredEvent event);
+ void afterUserRegistrationEvent (final UserRegisteredEvent event);
+
+ /**
+ * Observes events being fired when an administrator has added a new
+ * contact.
+ * <p>
+ * @param event Event being fired
+ */
+ void afterAdminAddedContactEvent (final AdminAddedContactEvent event);
/**
- * Event observer for updated contact data by admins
+ * Observes events being fired when an administrator has linked a new user
+ * with existing contact data.
+ * <p>
+ * @param event Event being fired
+ */
+ void afterAdminLinkedUserEvent (final AdminLinkedUserEvent event);
+
+ /**
+ * Event observer for updated contact data by administrators
* <p>
* @param event Updated contact data event
*/
* <p>
* @param event Event instance
*/
- void afterUserLogin (final UserLoggedInEvent event);
+ void afterUserLoginEvent (final UserLoggedInEvent event);
/**
* Creates an instance from all properties
void setBirthday (final Date birthday);
/**
- * Getter for ellphone number's carrier
+ * Getter for mobile provider
* <p>
- * @return Cellphone number's carrier
+ * @return Mobile provider
*/
- MobileProvider getCellphoneCarrier ();
+ MobileProvider getMobileProvider ();
/**
- * Setter for cellphone number's carrier prefix
+ * Setter for mobile provider
* <p>
- * @param cellphoneCarrier Cellphone number's carrier prefix
+ * @param mobileProvider Mobile provider
*/
- void setCellphoneCarrier (final MobileProvider cellphoneCarrier);
+ void setMobileProvider (final MobileProvider mobileProvider);
/**
- * Getter for ellphone number
+ * Getter for mobile number
* <p>
- * @return Cellphone number
+ * @return Mobile number
*/
- Long getCellphoneNumber ();
+ Long getMobileNumber ();
/**
- * Setter for ellphone number
+ * Setter for mobile number
* <p>
- * @param cellphoneNumber Cellphone number
+ * @param mobileNumber Mobile number
*/
- void setCellphoneNumber (final Long cellphoneNumber);
+ void setMobileNumber (final Long mobileNumber);
/**
* City
*/
void setHouseNumber (final Short houseNumber);
+ /**
+ * Getter for house number extension, example: 123a 'a' is then the
+ * extension and 123 is the house number.
+ * <p>
+ * @return House number extension
+ */
+ String getHouseNumberExtension ();
+
+ /**
+ * Setter for house number extension
+ * <p>
+ * @param houseNumberExtension House number extension
+ */
+ void setHouseNumberExtension (final String houseNumberExtension);
+
/**
* Getter for phone number's area code
* <p>
* @return Phone number's area code
*/
- Integer getPhoneAreaCode ();
+ Integer getLandLineAreaCode ();
/**
* Setter for phone number's area code
* <p>
* @param phoneAreaCode Phone number's area code
*/
- void setPhoneAreaCode (final Integer phoneAreaCode);
+ void setLandLineAreaCode (final Integer phoneAreaCode);
/**
* Getter for phone number's country instance
* <p>
* @return Phone number's country instance
*/
- Country getPhoneCountry ();
+ Country getLandLineCountry ();
/**
* Setter for phone number's country instance
* <p>
* @param phoneCountry Phone number's country instance
*/
- void setPhoneCountry (final Country phoneCountry);
+ void setLandLineCountry (final Country phoneCountry);
/**
* Getter for phone number
* <p>
* @return Phone number
*/
- Long getPhoneNumber ();
+ Long getLandLineNumber ();
/**
* Setter for phone number
* <p>
* @param phoneNumber Phone number
*/
- void setPhoneNumber (final Long phoneNumber);
+ void setLandLineNumber (final Long phoneNumber);
/**
* Street
*/
void setStreet (final String street);
+ /**
+ * Titöe
+ * <p>
+ * @return the title
+ */
+ String getTitle ();
+
+ /**
+ * Title
+ * <p>
+ * @param title the title to set
+ */
+ void setTitle (final String title);
+
/**
* ZIP code
* <p>
*/
void setZipCode (final Integer zipCode);
+ /**
+ * Getter for controller type
+ * <p>
+ * @return controller type
+ */
+ String getControllerType ();
+
+ /**
+ * Setter for controller type
+ * <p>
+ * @param controllerType Controller type
+ *
+ * @deprecated Don't use this method.
+ */
+ @Deprecated
+ void setControllerType (final String controllerType);
+
/**
* Checks whether contact instance's email address is used
* <p>
*/
String doChangePersonalContactData ();
+ /**
+ * Returns a list of all selectable contacts for user creation. Contacts
+ * from already existing users are excluded in this list.
+ * <p>
+ * @return A list of all selectable contacts
+ */
+ List<Contact> selectableContacts ();
+
}