/** * The contents of this file are subject to the OpenMRS Public License * Version 1.0 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://license.openmrs.org * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the * License for the specific language governing rights and limitations * under the License. * * Copyright (C) OpenMRS, LLC. All Rights Reserved. */ package org.openmrs.cohort.impl; import java.util.List; import java.util.Vector; import org.openmrs.Cohort; import org.openmrs.api.APIException; import org.openmrs.api.context.Context; import org.openmrs.cohort.CohortDefinition; import org.openmrs.cohort.CohortDefinitionItemHolder; import org.openmrs.cohort.CohortDefinitionProvider; import org.openmrs.cohort.StaticCohortDefinition; import org.openmrs.report.EvaluationContext; /** * This class provides access to {@link org.openmrs.Cohort} objects that are saved in the cohort * table, but exposes them as {@link CohortDefinition} The * {@link #evaluate(CohortDefinition, EvaluationContext)} method does not set links to the * CohortDefinition or EvaluationContext in the cohort that it returns. Those are not meaningful in * the context of a static cohort, and alse because we want to preserve the original * CohortDefinition that produced the Cohort that is being wrapped by a StaticCohortDefinition. * * @deprecated see reportingcompatibility module */ @Deprecated public class StaticCohortDefinitionProvider implements CohortDefinitionProvider { /** * @see org.openmrs.cohort.CohortDefinitionProvider#getClassHandled() */ public Class<? extends CohortDefinition> getClassHandled() { return StaticCohortDefinition.class; } /** * Note that this method does *not* set a CohortDefinition or EvaluationContext in the Cohort * that it returns, although that Cohort may have had those properties set when it was * originally evaluated. * * @see org.openmrs.cohort.CohortDefinitionProvider#evaluate(org.openmrs.cohort.CohortDefinition, * org.openmrs.report.EvaluationContext) */ public Cohort evaluate(CohortDefinition cohortDefinition, EvaluationContext evaluationContext) { StaticCohortDefinition def = (StaticCohortDefinition) cohortDefinition; return def.getCohort(); } /** * @see org.openmrs.cohort.CohortDefinitionProvider#getAllCohortDefinitions() */ public List<CohortDefinitionItemHolder> getAllCohortDefinitions() { List<CohortDefinitionItemHolder> ret = new Vector<CohortDefinitionItemHolder>(); for (Cohort cohort : Context.getCohortService().getAllCohorts()) { CohortDefinitionItemHolder item = new CohortDefinitionItemHolder(); CohortDefinition cohortDefinition = new StaticCohortDefinition(cohort); item.setKey(cohort.getCohortId() + ":" + cohortDefinition.getClass().getCanonicalName()); item.setName(cohort.getName()); item.setCohortDefinition(cohortDefinition); ret.add(item); } return ret; } /** * @see org.openmrs.cohort.CohortDefinitionProvider#getCohortDefinition(java.lang.Integer) */ public CohortDefinition getCohortDefinition(Integer id) { return new StaticCohortDefinition(Context.getCohortService().getCohort(id)); } /** * @see org.openmrs.cohort.CohortDefinitionProvider#purgeCohortDefinition(org.openmrs.cohort.CohortDefinition) */ public void purgeCohortDefinition(CohortDefinition cohortDefinition) { throw new APIException("Not Yet Implemented"); } /** * @see org.openmrs.cohort.CohortDefinitionProvider#saveCohortDefinition(org.openmrs.cohort.CohortDefinition) */ public CohortDefinition saveCohortDefinition(CohortDefinition cohortDefinition) { StaticCohortDefinition def = (StaticCohortDefinition) cohortDefinition; Cohort c = def.getCohort(); Context.getCohortService().saveCohort(c); return def; } }