1 /* 2 * Copyright (c) 2007, Fraunhofer-Gesellschaft 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: 8 * 9 * (1) Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the disclaimer at the end. 11 * Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in 13 * the documentation and/or other materials provided with the 14 * distribution. 15 * 16 * (2) Neither the name of Fraunhofer nor the names of its 17 * contributors may be used to endorse or promote products derived 18 * from this software without specific prior written permission. 19 * 20 * DISCLAIMER 21 * 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 23 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 24 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 25 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 26 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 27 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 28 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 29 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 30 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 31 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 32 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 33 * 34 */ 35 package org.ogf.graap.wsag.server.persistence; 36 37 /** 38 * <p> 39 * Specification of an agreement home implementation. Implementations are used to retrieve (list and find) 40 * agreements and to remove existing agreements. 41 * </p> 42 * 43 * <p> 44 * A global instance of the agreement home implementations stored in the 45 * {@link org.ogf.graap.wsag.server.engine.WsagEngine} instance. It can be used to access all agreements known to 46 * the wsag4j-instance. 47 * </p> 48 * 49 * <p> 50 * The default implementation of an agreement home is 51 * {@link org.ogf.graap.wsag.server.persistence.impl.DatabaseAgreementHome}. 52 * </p> 53 * 54 * @author Oliver Waeldrich 55 * 56 */ 57 public interface IAgreementHome 58 { 59 60 /** 61 * Finds an agreement with a given ID. 62 * 63 * @param agreementId 64 * the ID of the agreement 65 * 66 * @return the agreement 67 * 68 * @throws PersistedResourceException 69 * indicates an exception while loading the agreement from the database 70 */ 71 PersistentAgreement find( String agreementId ) throws PersistedResourceException; 72 73 /** 74 * Lists all agreements. 75 * 76 * @return List of all agreements. 77 * 78 * @throws Exception 79 * indicates an exception while loading the agreements from the database 80 */ 81 PersistentAgreement[] list() throws Exception; 82 83 /** 84 * Lists all agreements for one specific agreement factory. 85 * 86 * @param agreementFactoryId 87 * the id of the factory for which the agreements should be listed 88 * 89 * @return a list of all agreements for a specified agreement factory 90 * 91 * @throws Exception 92 * indicates an exception while loading the agreements from the database 93 * 94 * @deprecated the agreement home is implemented by a specific agreement factory instance 95 */ 96 PersistentAgreement[] list( String agreementFactoryId ) throws Exception; 97 98 /** 99 * Removes the agreement with the given id. 100 * 101 * @param agreementId 102 * the ID of the agreement, which should be removed 103 * 104 * @throws PersistedResourceException 105 * indicates an exception while removing the agreement from the database 106 */ 107 void remove( String agreementId ) throws PersistedResourceException; 108 }