/** * 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.api.impl; import java.util.Date; import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.openmrs.Person; import org.openmrs.activelist.ActiveListItem; import org.openmrs.activelist.ActiveListType; import org.openmrs.api.APIException; import org.openmrs.api.ActiveListService; import org.openmrs.api.db.ActiveListDAO; /** * Default implementation of the active list service. This class should not be used on its own. The * current OpenMRS implementation should be fetched from the Context via * <code>Context.getActiveListService()</code> * * @see org.openmrs.api.context.Context * @see org.openmrs.api.ActiveListService */ public class ActiveListServiceImpl extends BaseOpenmrsService implements ActiveListService { private static final Log log = LogFactory.getLog(ActiveListServiceImpl.class); private ActiveListDAO dao; /** * @see org.openmrs.api.ActiveListService#setActiveListDAO(org.openmrs.api.db.ActiveListDAO) */ public void setActiveListDAO(ActiveListDAO dao) { this.dao = dao; } /** * @see org.openmrs.api.ActiveListService#getActiveListItems(org.openmrs.Person, * org.openmrs.activelist.ActiveListType) */ @Override public List<ActiveListItem> getActiveListItems(Person p, ActiveListType type) throws APIException { return dao.getActiveListItems(p, type); } /** * @see org.openmrs.api.ActiveListService#getActiveListItems(java.lang.Class, * org.openmrs.Person, org.openmrs.activelist.ActiveListType) */ @Override public <T extends ActiveListItem> List<T> getActiveListItems(Class<T> clazz, Person p, ActiveListType type) throws APIException { return dao.getActiveListItems(clazz, p, type); } /** * @see org.openmrs.api.ActiveListService#getActiveListItem(java.lang.Class, java.lang.Integer) */ @Override public <T extends ActiveListItem> T getActiveListItem(Class<T> clazz, Integer activeListItemId) throws APIException { return dao.getActiveListItem(clazz, activeListItemId); } /** * @see org.openmrs.api.ActiveListService#getActiveListItemByUuid(java.lang.String) */ public ActiveListItem getActiveListItemByUuid(String uuid) throws APIException { return dao.getActiveListItemByUuid(uuid); } /** * @see org.openmrs.api.ActiveListService#saveActiveListItem(org.openmrs.activelist.ActiveListItem) */ @Override public ActiveListItem saveActiveListItem(ActiveListItem item) throws APIException { if (item.getStartDate() == null) { item.setStartDate(new Date()); } return dao.saveActiveListItem(item); } /** * @see org.openmrs.api.ActiveListService#removeActiveListItem(org.openmrs.activelist.ActiveListItem, * java.util.Date) */ @Override public ActiveListItem removeActiveListItem(ActiveListItem item, Date endDate) throws APIException { if (item.getEndDate() == null) { if (endDate == null) { endDate = new Date(); } item.setEndDate(endDate); } return dao.saveActiveListItem(item); } /** * @see org.openmrs.api.ActiveListService#voidActiveListItem(org.openmrs.activelist.ActiveListItem, * java.lang.String) */ @Override public ActiveListItem voidActiveListItem(ActiveListItem item, String reason) throws APIException { return dao.saveActiveListItem(item); } }