package com.rayo.server.verb; import java.util.List; import org.springframework.beans.factory.FactoryBean; import org.springframework.beans.factory.InitializingBean; public class DefaultVerbManagerFactoryBean implements FactoryBean<VerbManager>, InitializingBean { private VerbManager verbManager; private List<VerbFactory> verbFactories; @Override public void afterPropertiesSet() throws Exception { if(verbManager == null) { verbManager = new DefaultVerbManager(); } for (VerbFactory factory : verbFactories) { verbManager.registerVerbFactory(factory); } } @Override public VerbManager getObject() throws Exception { return verbManager; } @Override public Class<?> getObjectType() { return VerbManager.class; } @Override public boolean isSingleton() { return true; } public void setVerbFactoryList(List<VerbFactory> verbFactories) { this.verbFactories = verbFactories; } public List<VerbFactory> getVerbFactories() { return verbFactories; } public VerbManager getVerbManager() { return verbManager; } public void setVerbManager(VerbManager verbManager) { this.verbManager = verbManager; } }