package se.agura;
import javax.ejb.CreateException;
import javax.ejb.FinderException;
import com.idega.data.IDOLookupException;
import com.idega.idegaweb.IWBundle;
import com.idega.idegaweb.IWBundleStartable;
import com.idega.user.data.GroupType;
import com.idega.user.data.GroupTypeHome;
import com.idega.user.data.Status;
import com.idega.user.data.StatusHome;
/**
* <p>Title: idegaWeb</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: idega Software</p>
* @author <a href="laddi@idega.is">Thorhallur Helgason</a>
* @version 1.0
* Created on December 6th, 2004
*/
public class IWBundleStarter implements IWBundleStartable,AguraConstants {
public void start(IWBundle starterBundle) {
insertStartData();
}
public void stop(IWBundle starterBundle) {
// nothing to do
}
protected void insertStartData() {
insertGroupTypes();
//inserts the "profession" statuses used in the detailed search
insertStatuses();
}
/**
*
*/
private void insertGroupTypes() {
insertGroupType(GROUP_TYPE_PRIESTS);
insertGroupType(GROUP_TYPE_ASSISTANTS);
insertGroupType(GROUP_TYPE_EMPLOYEES);
insertGroupType(GROUP_TYPE_MEETING);
insertGroupType(GROUP_TYPE_PARISH);
insertGroupType(GROUP_TYPE_PARISH_OFFICE);
insertGroupType(GROUP_TYPE_SUBSTITUTES);
insertGroupType(GROUP_TYPE_SUPERVISOR);
}
private void insertStatuses() {
insertStatus(USER_STATUS_SUPERVISOR);
insertStatus(USER_STATUS_ASSISTANT);
insertStatus(USER_STATUS_WELFARE_WORKER_ASSISTANT);
insertStatus(USER_STATUS_REAL_ESTATE_EMPLOYEE);
insertStatus(USER_STATUS_PARISH_PEDAGOGUE);
insertStatus(USER_STATUS_POLITICIAN);
insertStatus(USER_STATUS_OFFICE_ECONOMY);
insertStatus(USER_STATUS_OFFICE_COMMITTEE);
insertStatus(USER_STATUS_OFFICE_HUMAN_RESOURCES);
insertStatus(USER_STATUS_CREMATORIUM_EMPLOYEE);
insertStatus(USER_STATUS_GRAVEYARD_EMPLOYEE);
insertStatus(USER_STATUS_MUSICIAN);
insertStatus(USER_STATUS_PRIEST);
insertStatus(USER_STATUS_CLEANING_CREW);
insertStatus(USER_STATUS_ATTENDANT);
}
private void insertStatus(String statusKey){
try {
StatusHome usHome = (StatusHome) com.idega.data.IDOLookup.getHome(Status.class);
Status status;
try {
status = usHome.findByStatusKey(statusKey);
}
catch (FinderException fe) {
try {
status = usHome.create();
status.setStatusKey(statusKey);
status.store();
}
catch (CreateException ce) {
ce.printStackTrace();
}
}
}
catch (IDOLookupException ile) {
ile.printStackTrace();
}
}
private void insertGroupType(String groupType) {
try {
GroupTypeHome gtHome = (GroupTypeHome) com.idega.data.IDOLookup.getHome(GroupType.class);
GroupType grType;
try {
grType = gtHome.findByPrimaryKey(groupType);
}
catch (FinderException fe) {
try {
grType = gtHome.create();
grType.setType(groupType);
grType.setDescription("");
grType.setVisibility(true);
grType.store();
}
catch (CreateException ce) {
ce.printStackTrace();
}
}
}
catch (IDOLookupException ile) {
ile.printStackTrace();
}
}
}