package com.cfinkel.reports.valuelist;
import net.mlw.vlh.*;
import org.apache.log4j.Logger;
import com.cfinkel.reports.ReportSessionInfo;
import com.cfinkel.reports.web.WebContext;
import com.cfinkel.reports.web.AttributeNames;
/**
* $Author:charles $
* $Revision:10429 $
* $Date:2006-07-26 18:00:43 -0400 (Wed, 26 Jul 2006) $
* <p/>
* created:
* User: charles
* Date: May 11, 2006
* Time: 8:16:47 PM
*/
public class CFValueListHandlerImpl extends DefaultValueListHandlerImpl {
private static final Logger log = Logger.getLogger(CFValueListHandlerImpl.class);
/**
*
* @param name
* @param info
* @return valuelist
*/
public ValueList getValueList(String name, ValueListInfo info)
{
return getValueListFromAdapter(name, info);
}
/**
* Returns value list adapter from session info
* @param name
* of adapter
* @return ValueListAdapter
*/
private ValueListAdapter getAdapter(String name)
{
ReportSessionInfo reportSessionInfo = (ReportSessionInfo)
WebContext.get().getRequest().getAttribute(AttributeNames.reportSessionInfo);
ValueListAdapter adapter = reportSessionInfo.getValueListAdapters().get(name);
if (adapter == null)
{
throw new NullPointerException("Adapter could not be located: " + name);
}
return adapter;
}
/**
* @param name
* of adapter
* @param info
* for wanted ValueList.
* @return ValueList from adpater specified by the name.
*/
private ValueList getValueListFromAdapter(String name, ValueListInfo info)
{
if (log.isDebugEnabled())
{
log.debug("Start to load the ValueList from the adapter '" + name + "' with info='" + info + "'");
}
ValueList valueList;
if (info == null)
{
info = new ValueListInfo();
if (log.isDebugEnabled())
{
log.debug("Creating a new ValueListInfo for the adapter '" + name + "'.");
}
}
info.getFilters().put(ValueListInfo.VALUE_LIST_NAME, name);
valueList = getAdapter(name).getValueList(name, info);
if (log.isDebugEnabled())
{
log.debug("The ValueList was loaded from the adapter '" + name + "'.");
}
return valueList;
}
}