01: /* Copyright 2001, 2002 The JA-SIG Collaborative. All rights reserved.
02: * See license distributed with this file and
03: * available online at http://www.uportal.org/license.html
04: */
05:
06: package org.jasig.portal;
07:
08: import org.apache.pluto.om.common.PreferenceSet;
09:
10: /**
11: * The IPortletPreferenceStore allows a portlet to atomicly persist preferences at two
12: * different levels. Definition level preferences are common to all instances of a
13: * channel. Entity level preferences are specific for on a per user per instance basis.
14: *
15: * @author Eric Dalquist <a href="mailto:edalquist@unicon.net">edalquist@unicon.net</a>
16: * @version $Revision: 34809 $
17: */
18: public interface IPortletPreferencesStore {
19: /**
20: * Stores the definition level preferences described by the PreferenceSet
21: * interface. The store operation is atomic, it can be assumed that if the
22: * method completes with no exception being thrown the store was successfull.
23: * If an exception is thrown it can be assumed that no changes were made to
24: * the underlying persistant store.
25: *
26: * @param chanId The id of the channel to store the preferences for.
27: * @param prefs The PreferenceSet which describes the data to store.
28: * @throws Exception If any error occurs while storing the data.
29: */
30: public abstract void setDefinitionPreferences(final int chanId,
31: final PreferenceSet prefs) throws Exception;
32:
33: /**
34: * Gets the definition level preferences for the specified channel into an
35: * implementation of the PreferenceSet interface.
36: *
37: * @param chanId The id of the channel to get the preferences for.
38: * @return An implementation of the PreferenceSet interface that contains the preferences.
39: * @throws Exception If any error occurs while getting the data.
40: */
41: public abstract PreferenceSet getDefinitionPreferences(
42: final int chanId) throws Exception;
43:
44: /**
45: * Stores the entity level preferences described by the PreferenceSet
46: * interface. The store operation is atomic, it can be assumed that if the
47: * method completes with no exception being thrown the store was successfull.
48: * If an exception is thrown it can be assumed that no changes were made to
49: * the underlying persistant store. The userId, layoutId and structId make up
50: * the primary key for the preferences.
51: *
52: * @param userId The id of the user to store the preferences for.
53: * @param layoutId The layout fragment id to store the preferences for.
54: * @param chanDescId The structure id to store the preferences for.
55: * @param prefs The PreferenceSet which describes the data to store.
56: * @throws Exception If any error occurs while storing the data.
57: */
58: public abstract void setEntityPreferences(final int userId,
59: final int layoutId, final String chanDescId,
60: final PreferenceSet prefs) throws Exception;
61:
62: /**
63: * Gets the enitity level preferences for the specified channel into an
64: * implementation of the PreferenceSet interface. The userId, layoutId and
65: * structId make up the primary key for the preferences.
66: *
67: * @param userId The id of the user to get the preferences for.
68: * @param layoutId The layout fragment id to get the preferences for.
69: * @param chanDescId The structure id to get the preferences for.
70: * @return An implementation of the PreferenceSet interface that contains the preferences.
71: * @throws Exception If any error occurs while getting the data.
72: */
73: public abstract PreferenceSet getEntityPreferences(
74: final int userId, final int layoutId,
75: final String chanDescId) throws Exception;
76:
77: /**
78: * Removes all portlet preferences stored for the specified user.
79: *
80: * @param userId The id of the user to remove the preferences for.
81: * @throws Exception If any error occurs while removing the data.
82: */
83: public abstract void deletePortletPreferencesByUser(int userId)
84: throws Exception;
85:
86: /**
87: * Removes portlet preferences for the specific user and instance of a portlet.
88: *
89: * @param userId The id of the user to remove the preferences for.
90: * @param layoutId The layout fragment id to remove the preferences for.
91: * @param chanDescId The structure id to remove the preferences for.
92: * @throws Exception If any error occurs while removing the data.
93: */
94: public abstract void deletePortletPreferencesByInstance(
95: final int userId, final int layoutId,
96: final String chanDescId) throws Exception;
97: }
|