package org.openmrs.module.reporting.web.controller.portlet; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.openmrs.api.context.Context; import org.openmrs.module.reporting.ReportingConstants; import org.openmrs.module.reporting.indicator.CohortIndicator; import org.openmrs.module.reporting.indicator.service.IndicatorService; /** * This Controller loads a CohortIndicator class and object given the passed parameters */ public class BaseCohortIndicatorPortletController extends ReportingPortletController { protected final Log log = LogFactory.getLog(getClass()); protected void populateModel(HttpServletRequest request, Map<String, Object> model) { super.populateModel(request, model); CohortIndicator indicator = null; String uuid = (String)model.get("uuid"); if (StringUtils.isNotEmpty(uuid)) { indicator = (CohortIndicator) Context.getService(IndicatorService.class).getDefinitionByUuid(uuid); } if (indicator != null) { if (indicator.getAggregator() != null) { try { model.put("aggregatorName", indicator.getAggregator().newInstance().getName()); } catch (Exception e) { model.put("aggregatorName", indicator.getAggregator().getSimpleName()); } } } else { indicator = new CohortIndicator(); indicator.addParameter(ReportingConstants.START_DATE_PARAMETER); indicator.addParameter(ReportingConstants.END_DATE_PARAMETER); indicator.addParameter(ReportingConstants.LOCATION_PARAMETER); } model.put("indicator", indicator); } }