1 //
2 // Copyright (c) 2003, Caltha - Gajda, Krzewski, Mach, Potempski Sp.J.
3 // All rights reserved.
4 //
5 // Redistribution and use in source and binary forms, with or without modification,
6 // are permitted provided that the following conditions are met:
7 //
8 // * Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above copyright notice,
11 // this list of conditions and the following disclaimer in the documentation
12 // and/or other materials provided with the distribution.
13 // * Neither the name of the Caltha - Gajda, Krzewski, Mach, Potempski Sp.J.
14 // nor the names of its contributors may be used to endorse or promote products
15 // derived from this software without specific prior written permission.
16 //
17 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 // IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
21 // INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
22 // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
23 // OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26 // POSSIBILITY OF SUCH DAMAGE.
27 //
28 package org.objectledge.parameters.db;
29
30 import org.objectledge.parameters.Parameters;
31
32 /***
33 * Manages the parameters stored in database.
34 *
35 * @author <a href="mailto:rafal@caltha.pl">Rafal Krzewski</a>
36 * @version $Id: DBParametersManager.java,v 1.11 2005/01/26 08:06:26 rafal Exp $
37 */
38 public interface DBParametersManager
39 {
40 /*** the table name. */
41 public static final String TABLE_NAME = "ledge_parameters";
42
43 /***
44 * Creates an empty container stored in database.
45 *
46 * @return the container.
47 * @throws DBParametersException thrown if creation failed.
48 */
49 public abstract Parameters createContainer() throws DBParametersException;
50
51 /***
52 * Retrieves parameters from database.
53 *
54 * @param id the parameters identifier.
55 * @return the parameters.
56 * @throws DBParametersException if parameters cannot be found.
57 */
58 public abstract Parameters getParameters(long id) throws DBParametersException;
59
60 /***
61 * Deletes parameters from database.
62 *
63 * @param id the parameters identifier
64 * @throws DBParametersException thrown if failed to delete.
65 */
66 public abstract void deleteParameters(long id) throws DBParametersException;
67
68 /***
69 * Attemps to load all the containers' data into memory in a single haul.
70 *
71 * <p>A hint from the users that they prefer preformance over footprint.</p>
72 * @throws DBParametersException if preloading fails.
73 */
74 public void preloadContainers()
75 throws DBParametersException;
76 }