package com.mossle.workcal.support;
import javax.annotation.PostConstruct;
import com.mossle.api.workcal.MockWorkCalendarConnector;
import com.mossle.api.workcal.WorkCalendarConnector;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.FactoryBean;
import org.springframework.util.Assert;
public class WorkCalendarConnectorFactoryBean implements FactoryBean {
private static Logger logger = LoggerFactory
.getLogger(WorkCalendarConnectorFactoryBean.class);
private WorkCalendarConnector workCalendarConnector;
private String type = "database";
@PostConstruct
public void afterPropertiesSet() {
Assert.notNull(type, "type cannot be null");
if ("mock".equals(type)) {
this.processMock();
} else if ("database".equals(type)) {
this.processDatabase();
} else {
throw new IllegalArgumentException("unsupported type : " + type);
}
}
public void processMock() {
MockWorkCalendarConnector mockWorkCalendarConnector = new MockWorkCalendarConnector();
workCalendarConnector = mockWorkCalendarConnector;
}
public void processDatabase() {
}
public Object getObject() {
return workCalendarConnector;
}
public Class getObjectType() {
return WorkCalendarConnector.class;
}
public boolean isSingleton() {
return true;
}
public void setType(String type) {
this.type = type;
}
}