1 /* 2 * 3 * Fosstrak LLRP Commander (www.fosstrak.org) 4 * 5 * Copyright (C) 2008 ETH Zurich 6 * 7 * This program is free software: you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation, either version 3 of the License, or 10 * (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program. If not, see <http://www.gnu.org/licenses/> 19 * 20 */ 21 22 package org.fosstrak.llrp.client; 23 24 import java.util.List; 25 26 import org.fosstrak.llrp.adaptor.AdaptorManagement; 27 import org.fosstrak.llrp.adaptor.exception.LLRPRuntimeException; 28 import org.fosstrak.llrp.client.repository.sql.roaccess.ROAccessItem; 29 30 /** 31 * Common interface for all the implementations providing access to the 32 * RO_ACCESS_REPORTS data-base. The actual implementation of the interface 33 * is chosen at runtime via the strategy pattern from the respective Context 34 * (in this case the implementation of the {@link Repository} interface). The 35 * interface extends the {@link MessageHandler} interface, in order to be able 36 * to receive LLRP RO_ACCESS_REPORTS messages. 37 * <h3>NOTICE:</h3> The registration at the {@link AdaptorManagement} is done 38 * automatically for the implementing class. So do this ONLY, if you know 39 * exactly what you are planing to do (otherwise messages might get logged 40 * twice!!!). 41 * @author sawielan 42 * 43 */ 44 public interface ROAccessReportsRepository extends MessageHandler { 45 46 /** 47 * set the repository that "owns" this RO_ACCESS_REPORTS repository. 48 * @param repository the repository that "owns" this RO_ACCESS_REPORTS repository. 49 */ 50 public void setRepository(Repository repository); 51 52 /** 53 * Initializer for the RO_ACCESS_REPORTS repository. 54 * <strong>NOTICE</strong>: if you create an instance of a subclass of this 55 * interface, you <strong>MUST</strong> call this method directly after 56 * instantiation. 57 * @param repository the repository belonging to this RO_ACCESS_REPORTS DB. 58 * @throws when there is a problem with initialization (eg. missing param). 59 */ 60 public void initialize(Repository repository) throws LLRPRuntimeException; 61 62 /** 63 * retrieves all the RO_ACCESS_REPORTS elements in the database. 64 * @return a list of all the entries in the database stored into 65 * {@link ROAccessItem}. 66 * @throws Exception when there is an error of any kind. 67 */ 68 public List<ROAccessItem> getAll() throws Exception; 69 70 /** 71 * drop all the messages in the repository. 72 * @throws Exception when there is an error of any kind. 73 */ 74 public void clear() throws Exception; 75 }