package org.cloudgraph.web.util;
import java.io.Serializable;
import javax.faces.FactoryFinder;
import javax.faces.application.Application;
import javax.faces.application.ApplicationFactory;
import javax.faces.context.FacesContext;
import org.cloudgraph.web.ErrorHandlerBean;
import org.cloudgraph.web.model.CommonSessionBean;
import org.cloudgraph.web.model.cache.ReferenceDataCache;
import org.cloudgraph.web.model.configuration.ClassEditBean;
import org.cloudgraph.web.model.demo.DemoBean;
import org.cloudgraph.web.model.navigation.NavigationBean;
import org.cloudgraph.web.model.profile.UserBean;
import org.cloudgraph.web.model.search.SearchBean;
public class BeanFinder
implements Serializable
{
public BeanFinder()
{
}
public UserBean findUserBean()
{
return (UserBean) findClassBean(UserBean.class);
}
public ErrorHandlerBean findErrorHandlerBean()
{
return (ErrorHandlerBean) findClassBean(ErrorHandlerBean.class);
}
public NavigationBean findNavigationBean()
{
return (NavigationBean) findClassBean(NavigationBean.class);
}
public CommonSessionBean findCommonSessionBean()
{
return (CommonSessionBean)findClassBean(CommonSessionBean.class);
}
public SearchBean findSearchBean()
{
return (SearchBean)findClassBean(SearchBean.class);
}
public ClassEditBean findClassEditBean()
{
return (ClassEditBean)findClassBean(ClassEditBean.class);
}
public ReferenceDataCache findReferenceDataCache()
{
return (ReferenceDataCache)findClassBean(ReferenceDataCache.class);
}
public DemoBean findDemoBean()
{
return (DemoBean)findClassBean(DemoBean.class);
}
private Object findClassBean(Class ClassBean) {
FacesContext context = FacesContext.getCurrentInstance();
ApplicationFactory appFactory =
(ApplicationFactory) FactoryFinder.getFactory(FactoryFinder.APPLICATION_FACTORY);
Application app = appFactory.getApplication();
String beanName = ClassBean.getName().substring(
ClassBean.getName().lastIndexOf(".") + 1);
return app.createValueBinding("#{" + beanName + "}").getValue(context);
}
}