KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > caucho > portal > generic > GenericPortletPreferences


1 /*
2  * The Apache Software License, Version 1.1
3  *
4  * Copyright (c) 2001-2004 Caucho Technology, Inc. All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  *
10  * 1. Redistributions of source code must retain the above copyright
11  * notice, this list of conditions and the following disclaimer.
12  *
13  * 2. Redistributions in binary form must reproduce the above copyright
14  * notice, this list of conditions and the following disclaimer in
15  * the documentation and/or other materials provided with the
16  * distribution.
17  *
18  * 3. The end-user documentation included with the redistribution, if
19  * any, must include the following acknowlegement:
20  * "This product includes software developed by the
21  * Caucho Technology (http://www.caucho.com/)."
22  * Alternately, this acknowlegement may appear in the software itself,
23  * if and wherever such third-party acknowlegements normally appear.
24  *
25  * 4. The names "Hessian", "Resin", and "Caucho" must not be used to
26  * endorse or promote products derived from this software without prior
27  * written permission. For written permission, please contact
28  * info@caucho.com.
29  *
30  * 5. Products derived from this software may not be called "Resin"
31  * nor may "Resin" appear in their names without prior written
32  * permission of Caucho Technology.
33  *
34  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
35  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
36  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
37  * DISCLAIMED. IN NO EVENT SHALL CAUCHO TECHNOLOGY OR ITS CONTRIBUTORS
38  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
39  * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
40  * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
41  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
42  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
43  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
44  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
45  *
46  * @author Sam
47  */

48
49 package com.caucho.portal.generic;
50
51 import javax.portlet.PortletPreferences;
52 import javax.portlet.PreferencesValidator;
53 import javax.portlet.ReadOnlyException;
54 import javax.portlet.ValidatorException;
55 import java.io.IOException JavaDoc;
56 import java.util.ArrayList JavaDoc;
57 import java.util.Collections JavaDoc;
58 import java.util.Enumeration JavaDoc;
59 import java.util.LinkedHashMap JavaDoc;
60 import java.util.Map JavaDoc;
61
62 public class GenericPortletPreferences implements PortletPreferences
63 {
64   Map JavaDoc<String JavaDoc, PortletPreference> _preferenceMap;
65   ArrayList JavaDoc<PreferencesValidator> _preferencesValidators;
66
67   public void addPreference(PortletPreference preference)
68   {
69     if (_preferenceMap == null)
70       _preferenceMap = new LinkedHashMap JavaDoc<String JavaDoc, PortletPreference>();
71
72     _preferenceMap.put(preference.getName(), preference);
73   }
74
75   public void addPreferencesValidator(String JavaDoc className)
76   {
77     try {
78       ClassLoader JavaDoc loader = Thread.currentThread().getContextClassLoader();
79       Class JavaDoc cl = Class.forName(className, false, loader);
80       PreferencesValidator validator = (PreferencesValidator) cl.newInstance();
81
82       if (_preferencesValidators == null)
83         _preferencesValidators = new ArrayList JavaDoc<PreferencesValidator>();
84
85       _preferencesValidators.add(validator);
86     } catch (Exception JavaDoc ex) {
87       throw new IllegalArgumentException JavaDoc(ex);
88     }
89
90   }
91
92   public ArrayList JavaDoc<PreferencesValidator> getPreferencesValidators()
93   {
94     return _preferencesValidators;
95   }
96   
97   public boolean isReadOnly(String JavaDoc key)
98   {
99     if (_preferenceMap == null)
100       return false;
101
102     PortletPreference preference = _preferenceMap.get(key);
103
104     if (preference == null)
105       return false;
106
107     return preference.isReadOnly();
108   }
109
110   public String JavaDoc getValue(String JavaDoc key, String JavaDoc def)
111   {
112     if (_preferenceMap == null)
113       return def;
114
115     PortletPreference preference = _preferenceMap.get(key);
116
117     if (preference == null)
118       return def;
119
120     return preference.getValue();
121   }
122
123   public String JavaDoc[] getValues(String JavaDoc key, String JavaDoc[] def)
124   {
125     if (_preferenceMap == null)
126       return def;
127
128     PortletPreference preference = _preferenceMap.get(key);
129
130     if (preference == null)
131       return def;
132
133     return preference.getValues();
134   }
135
136   public Enumeration JavaDoc getNames()
137   {
138     if (_preferenceMap == null)
139       return Collections.enumeration(Collections.EMPTY_LIST);
140     else
141       return Collections.enumeration(_preferenceMap.keySet());
142   }
143
144   public Map JavaDoc getMap()
145   {
146     return _preferenceMap;
147   }
148
149   public void reset(String JavaDoc key)
150     throws ReadOnlyException
151   {
152     throw new UnsupportedOperationException JavaDoc();
153   }
154
155   public void setValue(String JavaDoc key, String JavaDoc value)
156     throws ReadOnlyException
157   {
158     throw new UnsupportedOperationException JavaDoc();
159   }
160
161   public void setValues(String JavaDoc key, String JavaDoc[] values)
162     throws ReadOnlyException
163   {
164     throw new UnsupportedOperationException JavaDoc();
165   }
166
167   public void store()
168     throws IOException JavaDoc, ValidatorException
169   {
170     throw new UnsupportedOperationException JavaDoc();
171   }
172 }
173
174
175
176
177
Popular Tags