View Javadoc

1   /*
2    * $HeadURL: $
3    * $Date: $
4    * $Revision: $
5    * $Author: $
6    * 
7    * Copyright (c) 2005 MindTree Consulting Ltd. 
8    * 
9    * This file is part of Insight.
10   * 
11   * Insight is free software: you can redistribute it and/or modify it under the 
12   * terms of the GNU General Public License as published by the Free Software 
13   * Foundation, either version 3 of the License, or (at your option) any later 
14   * version.
15   * 
16   * Insight is distributed in the hope that it will be useful, but 
17   * WITHOUT ANY WARRANTY; without even the implied warranty of 
18   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General 
19   * Public License for more details.
20   * 
21   * You should have received a copy of the GNU General Public License along with 
22   * Insight.  If not, see <http://www.gnu.org/licenses/>.
23   */
24  
25  package com.mindtree.techworks.insight.preferences;
26  
27  import java.util.Collection;
28  import java.util.List;
29  
30  import com.mindtree.techworks.insight.preferences.model.Preference;
31  
32  
33  /**
34   * <p>
35   * This is an interface used by the PreferenceManager for retrieving and 
36   * storing data into the data-store, which could be an XML file, a properties 
37   * file or a database. The actual datastore used and format of data depends on 
38   * the implementation of this interface.
39   * </p>
40   * <p>
41   * The lowest unit of transfer between the PreferenceManager and a data-store is
42   *  a Preference.</p>
43   * 
44   * @see com.mindtree.techworks.insight.preferences.PreferenceManager PreferenceManager
45   * @see com.mindtree.techworks.insight.preferences.model.Preference Preference
46   * 
47   * @author Bindul Bhowmik
48   * @version $Revision: 27 $ $Date: 2007-12-16 04:58:03 -0700 (Sun, 16 Dec 2007) $
49   * 
50   */
51  public interface PreferenceDataHandler {
52  
53  	/**
54  	 * Returns a list of names of all Preferences currently for the instance 
55  	 * of Insight from the store.
56  	 * 
57  	 * @return A collection of Preference Names
58  	 */
59  	public Collection getPreferenceNameList();
60  	
61  	/**
62  	 * Returns all the preferences from the store. The implications of using this
63  	 * method will largely depend on the store, and the Handler implementation.
64  	 * @return A collection of Preferences
65  	 */
66  	public Collection getAllPreferences();
67  	
68  	/**
69  	 * Loads a particular Preference using the Preference Id passed.
70  	 * 
71  	 * @param preferenceId The id of the Preference to be loaded
72  	 * 
73  	 * @return The preference for the id passed, or null.
74  	 */
75  	public Preference getPreference(String preferenceId);
76  	
77  	/**
78  	 * Saves the passed preferences to the store.
79  	 * 
80  	 * @param preferences The Preferences to store.
81  	 * @throws PreferenceHandlerStoreException
82  	 */
83  	public void savePreferences(List preferences) throws PreferenceHandlerStoreException;
84  	
85  }