package com.mossle.bpm.calendar; import com.mossle.api.workcal.WorkCalendarConnector; import org.springframework.beans.factory.FactoryBean; import org.springframework.beans.factory.InitializingBean; public class AdvancedBusinessCalendarManagerFactoryBean implements InitializingBean, FactoryBean<AdvancedBusinessCalendarManager> { private AdvancedBusinessCalendarManager advancedBusinessCalendarManager; private WorkCalendarConnector workCalendarConnector; public AdvancedBusinessCalendarManager getObject() { return advancedBusinessCalendarManager; } public Class<AdvancedBusinessCalendarManager> getObjectType() { return AdvancedBusinessCalendarManager.class; } public boolean isSingleton() { return true; } public void afterPropertiesSet() throws Exception { this.advancedBusinessCalendarManager = new AdvancedBusinessCalendarManager(); this.addBusinessCalendar(new DueDateBusinessCalendar()); this.addBusinessCalendar(new DurationBusinessCalendar()); this.addBusinessCalendar(new CycleBusinessCalendar()); } public void addBusinessCalendar(AdvancedBusinessCalendar businessCalendar) { businessCalendar.setWorkCalendarConnector(workCalendarConnector); this.advancedBusinessCalendarManager .addBusinessCalendar(businessCalendar); } public void setWorkCalendarConnector( WorkCalendarConnector workCalendarConnector) { this.workCalendarConnector = workCalendarConnector; } }