/*
* $Id: CommuneUserBusiness.java,v 1.49 2005/11/03 18:29:29 eiki Exp $
* Created on Nov 3, 2005
*
* Copyright (C) 2005 Idega Software hf. All Rights Reserved.
*
* This software is the proprietary information of Idega hf.
* Use is subject to license terms.
*/
package se.idega.idegaweb.commune.business;
import is.idega.block.family.business.FamilyLogic;
import java.rmi.RemoteException;
import java.sql.Timestamp;
import java.util.Collection;
import java.util.Date;
import javax.ejb.CreateException;
import javax.ejb.FinderException;
import com.idega.block.school.data.School;
import com.idega.business.IBOService;
import com.idega.core.contact.data.Email;
import com.idega.core.contact.data.Phone;
import com.idega.core.location.data.Address;
import com.idega.core.location.data.Commune;
import com.idega.core.location.data.Country;
import com.idega.core.location.data.PostalCode;
import com.idega.user.business.UserBusiness;
import com.idega.user.data.Gender;
import com.idega.user.data.Group;
import com.idega.user.data.User;
import com.idega.util.IWTimestamp;
/**
*
* Last modified: $Date: 2005/11/03 18:29:29 $ by $Author: eiki $
*
* @author <a href="mailto:eiki@idega.com">eiki</a>
* @version $Revision: 1.49 $
*/
public interface CommuneUserBusiness extends IBOService, UserBusiness {
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#createCitizen
*/
public User createCitizen(String firstname, String middlename, String lastname, String personalID)
throws CreateException, java.rmi.RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#createCitizen
*/
public User createCitizen(String firstname, String middlename, String lastname, String personalID, Gender gender,
IWTimestamp dateOfBirth) throws CreateException, java.rmi.RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#updateUsersMainAddressOrCreateIfDoesNotExist
*/
public Address updateUsersMainAddressOrCreateIfDoesNotExist(User user, String streetNameAndNumber,
PostalCode postalCode, Country country, String city, String province, String poBox, Integer communeID)
throws CreateException, RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#createCitizen
*/
public User createCitizen(String firstname, String middlename, String lastname, String personalID, Gender gender,
IWTimestamp dateOfBirth, Group rootGroup) throws CreateException, java.rmi.RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#createOrUpdateCitizenByPersonalID
*/
public User createOrUpdateCitizenByPersonalID(String firstName, String middleName, String lastName,
String personalID) throws CreateException, java.rmi.RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#createOrUpdateCitizenByPersonalID
*/
public User createOrUpdateCitizenByPersonalID(String firstName, String middleName, String lastName,
String personalID, Gender gender, IWTimestamp dateOfBirth) throws CreateException, java.rmi.RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#createSpecialCitizen
*/
public User createSpecialCitizen(String firstname, String middlename, String lastname, String personalID,
Gender gender, IWTimestamp dateOfBirth) throws CreateException, java.rmi.RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#createSpecialCitizenByPersonalIDIfDoesNotExist
*/
public User createSpecialCitizenByPersonalIDIfDoesNotExist(String firstName, String middleName, String lastName,
String personalID) throws CreateException, java.rmi.RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#createSpecialCitizenByPersonalIDIfDoesNotExist
*/
public User createSpecialCitizenByPersonalIDIfDoesNotExist(String firstName, String middleName, String lastName,
String personalID, Gender gender, IWTimestamp dateOfBirth) throws CreateException, java.rmi.RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#createCommuneAdministrator
*/
public User createCommuneAdministrator(String firstname, String middlename, String lastname)
throws CreateException, RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#createProviderAdministrator
*/
public User createProviderAdministrator(String firstname, String middlename, String lastname, School school)
throws javax.ejb.FinderException, CreateException, RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#createSchoolAdministrator
*/
public User createSchoolAdministrator(String firstname, String middlename, String lastname, School school)
throws javax.ejb.FinderException, CreateException, RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#getDefaultCommune
*/
public Commune getDefaultCommune() throws java.rmi.RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#getRootCitizenGroup
*/
public Group getRootCitizenGroup() throws CreateException, FinderException, RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#getRootAcceptedCitizenGroup
*/
public Group getRootAcceptedCitizenGroup() throws CreateException, RemoteException, FinderException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#getRootOtherCommuneCitizensGroup
*/
public Group getRootOtherCommuneCitizensGroup() throws CreateException, FinderException, RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#getRootCustomerChoiceGroup
*/
public Group getRootCustomerChoiceGroup() throws CreateException, FinderException, RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#getRootProtectedCitizenGroup
*/
public Group getRootProtectedCitizenGroup() throws CreateException, FinderException, RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#getRootDeceasedCitizensGroup
*/
public Group getRootDeceasedCitizensGroup() throws CreateException, FinderException, RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#getRootCommuneAdministratorGroup
*/
public Group getRootCommuneAdministratorGroup() throws CreateException, FinderException, RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#getAllCommuneAdministrators
*/
public Collection getAllCommuneAdministrators() throws FinderException, java.rmi.RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#isRootCommuneAdministrator
*/
public boolean isRootCommuneAdministrator(User user) throws RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#getFirstManagingSchoolForUser
*/
public School getFirstManagingSchoolForUser(User user) throws FinderException, RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#getFirstManagingMusicSchoolForUser
*/
public School getFirstManagingMusicSchoolForUser(User user) throws FinderException, RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#getFirstManagingChildCareForUser
*/
public School getFirstManagingChildCareForUser(User user) throws FinderException, RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#hasCitizenAccount
*/
public boolean hasCitizenAccount(User user) throws RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#hasCitizenAccount
*/
public boolean hasCitizenAccount(int userID) throws RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#hasBankLogin
*/
public boolean hasBankLogin(User user) throws java.rmi.RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#moveCitizenFromCommune
*/
public boolean moveCitizenFromCommune(User user, Timestamp time, User performer) throws java.rmi.RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#moveCitizenToCommune
*/
public boolean moveCitizenToCommune(User user, Timestamp time, User performer) throws java.rmi.RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#moveCitizenToProtectedCitizenGroup
*/
public boolean moveCitizenToProtectedCitizenGroup(User user, Timestamp time, User performer)
throws java.rmi.RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#getChildHomePhone
*/
public Phone getChildHomePhone(User child) throws RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#getChildHomePhone
*/
public Phone getChildHomePhone(int childId) throws RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#getIfUserAddressesMatch
*/
public boolean getIfUserAddressesMatch(Address userAddress, Address userAddressToCompare)
throws java.rmi.RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#getParentsForChild
*/
public Collection getParentsForChild(User child) throws RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#getCustodianForChild
*/
public User getCustodianForChild(int childID) throws RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#getCustodianForChild
*/
public User getCustodianForChild(User child) throws RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#getChildrenForUser
*/
public Collection getChildrenForUser(User user) throws RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#getMemberFamilyLogic
*/
public FamilyLogic getMemberFamilyLogic() throws RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#getRootAdministratorGroupID
*/
public int getRootAdministratorGroupID() throws java.rmi.RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#haveSameAddress
*/
public boolean haveSameAddress(User user, User compareUser) throws RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#updateCitizen
*/
public void updateCitizen(int userID, String firstName, String middleName, String lastName, String personalID)
throws RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#updateCitizenAddress
*/
public void updateCitizenAddress(int userID, String address, String postalCode, String postalName)
throws RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#updateCitizenAddress
*/
public void updateCitizenAddress(int userID, String address, String postalCode, String postalName, Integer communeId)
throws RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#getEmail
*/
public Email getEmail(User user) throws java.rmi.RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#getHomePhone
*/
public Phone getHomePhone(User user) throws java.rmi.RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#setUserAsDeceased
*/
public boolean setUserAsDeceased(Integer userID, Date deceasedDate) throws java.rmi.RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#findSchoolChildrenByConditions
*/
public Collection findSchoolChildrenByConditions(String firstName, String middleName, String lastName, String pid)
throws java.rmi.RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#findSchoolChildrenBySearchCondition
*/
public Collection findSchoolChildrenBySearchCondition(String searchString) throws java.rmi.RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#findUsersByConditions
*/
public Collection findUsersByConditions(String firstName, String middleName, String lastName, String pid)
throws java.rmi.RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#findUsersBySearchCondition
*/
public Collection findUsersBySearchCondition(String searchString) throws java.rmi.RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#getNameLastFirst
*/
public String getNameLastFirst(User user, boolean comma) throws java.rmi.RemoteException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#getPostalAddress
*/
public Address getPostalAddress(User user) throws RemoteException, NoUserAddressException;
/**
* @see se.idega.idegaweb.commune.business.CommuneUserBusinessBean#getUsersCommuneURL
*/
public String getUsersCommuneURL(User user) throws java.rmi.RemoteException;
}