01: /*
02: ItsNat Java Web Application Framework
03: Copyright (C) 2007 Innowhere Software Services S.L., Spanish Company
04: Author: Jose Maria Arranz Santamaria
05:
06: This program is free software: you can redistribute it and/or modify
07: it under the terms of the GNU Affero General Public License as published by
08: the Free Software Foundation, either version 3 of the License, or
09: (at your option) any later version. See the GNU Affero General Public
10: License for more details. See the copy of the GNU Affero General Public License
11: included in this program. If not, see <http://www.gnu.org/licenses/>.
12: */
13:
14: package org.itsnat.core;
15:
16: /**
17: * This basic interface provides a user data registry. This registry
18: * is in no way used by the framework.
19: *
20: * <p>Most of ItsNat objects implement this interface to help the user to reduce
21: * the work of wiring user data with ItsNat objects.</p>
22: *
23: * <p>User data registry methods are synchronized if this object is a
24: * {@link ItsNatServletContext}, {@link ItsNatServlet}, {@link ItsNatServletConfig},
25: * {@link ItsNatSession} or {@link MarkupTemplate},
26: * otherwise are unsynchronized.</p>
27: *
28: */
29: public interface ItsNatUserData {
30: /**
31: * Informs whether the registry contains one pair name/value with the specified name.
32: *
33: * @param name the name to look for.
34: * @return true if there is a name/value pair with this name.
35: */
36: public boolean containsUserValueName(String name);
37:
38: /**
39: * Returns the value associated to the specified name.
40: *
41: * @param name the name to look for.
42: * @return the value associated or null if not found.
43: */
44: public Object getUserValue(String name);
45:
46: /**
47: * Sets a new value associated to the specified name.
48: *
49: * @param name the name used to register.
50: * @param value the value with the specified name.
51: * @return the old value associated to this name or null if none.
52: */
53: public Object setUserValue(String name, Object value);
54:
55: /**
56: * Removes the name/value registry with the specified name.
57: *
58: * @param name the name to look for.
59: * @return the associated value or null if no registry has this name.
60: */
61: public Object removeUserValue(String name);
62:
63: /**
64: * Returns all registered names.
65: *
66: * @return an array with all registered names.
67: */
68: public String[] getUserValueNames();
69: }
|