001: /*
002: * $Header: /export/home/cvsroot/MyPersonalizerRepository/MyPersonalizer/Subsystems/Portal/Sources/es/udc/mypersonalizer/portal/model/types/WizardEvent.java,v 1.1.1.1 2004/03/25 12:08:40 fbellas Exp $
003: * $Revision: 1.1.1.1 $
004: * $Date: 2004/03/25 12:08:40 $
005: *
006: * =============================================================================
007: *
008: * Copyright (c) 2003, The MyPersonalizer Development Group
009: * (http://www.tic.udc.es/~fbellas/mypersonalizer/index.html) at
010: * University Of A Coruna
011: * All rights reserved.
012: *
013: * Redistribution and use in source and binary forms, with or without
014: * modification, are permitted provided that the following conditions are met:
015: *
016: * - Redistributions of source code must retain the above copyright notice,
017: * this list of conditions and the following disclaimer.
018: *
019: * - Redistributions in binary form must reproduce the above copyright notice,
020: * this list of conditions and the following disclaimer in the documentation
021: * and/or other materials provided with the distribution.
022: *
023: * - Neither the name of the University Of A Coruna nor the names of its
024: * contributors may be used to endorse or promote products derived from
025: * this software without specific prior written permission.
026: *
027: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
028: * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
029: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
030: * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
031: * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
032: * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
033: * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
034: * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
035: * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
036: * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
037: * POSSIBILITY OF SUCH DAMAGE.
038: *
039: */
040:
041: package es.udc.mypersonalizer.portal.model.types;
042:
043: import es.udc.mypersonalizer.portal.model.permissions.UserCredentials;
044: import java.util.*;
045:
046: /**
047: * This class defines a "general" event, as a WizardEvent may contain any
048: * structure of properties in a Map. This makes it the ideal event for actions
049: * such as those regarding user information, wizards, etc...<p>
050: *
051: * The properties map will usually be composed of entries in form
052: * (field name, String[] of values).
053: * It will contain, besides a properties Map, the credentials of the user to
054: * which the event belongs (it's a PortalEvent) and the following fields:
055: *
056: * <ul>
057: * <li><tt>serviceIdentifier</tt>: the service identifier (i.e.: user
058: * registration information) which structure this event may model. This
059: * relates the event to a determinate part of the model so that the model
060: * action in charge of its processing will know the structure the
061: * properties contained in a WizardEvent should match with.</li>
062: * <li><tt>propertyUpdaterName</tt>: this parameter will designate the action
063: * to
064: * execute with the Property this WizardEvent defines, and will have
065: * to be registered as a property updater in configuration.</li>
066: * <li><tt>propertyStructureName</tt>: the "path name" needed to find the
067: * correct PropertyStructure that matches this WizardEvent starting from
068: * the service identifier</li>
069: * <li><tt>previousPropertyStructureNames</tt>: This is a comma-separated
070: * list of the property structure names applied to the previous steps in
071: * a wizard, useful for tracing these steps back.</li>
072: * <li><tt>propertyIdentifier</tt>: the identifier that may apply to the
073: * Property being modified
074: * </ul>
075: *
076: * @author Daniel Fernandez
077: * @since 1.0
078: */
079: public class WizardEvent extends PortalEvent {
080:
081: /**
082: * The properties of this WizardEvent. It will usually contain entries
083: * in the form (field name, String[] of values)
084: */
085: private Map properties;
086:
087: /**
088: * The service identifier that this event works for
089: */
090: private String serviceIdentifier;
091:
092: /**
093: * The property updater name that determines what to do with
094: * the info contained in this WizardEvent
095: */
096: private String propertyUpdaterName;
097:
098: /**
099: * The property structure name that can determine the correct
100: * PropertyStructure to work on from the service identifier
101: */
102: private String propertyStructureName;
103:
104: /**
105: * The list of property structure names that can determine the correct
106: * order for the wizard screens.
107: */
108: private String previousPropertyStructureNames;
109:
110: /**
111: * The property identifier that can determine the property to work on
112: */
113: private Long propertyIdentifier;
114:
115: /**
116: * Creates an instance of WizardEvent.
117: *
118: * @param userCredentials the user's credentials
119: * @param properties the Map of properties for this WizardEvent
120: * (usually with entries (String,String[]))
121: * @param serviceIdentifier the service identifier
122: * @param propertyUpdaterName the property updater name
123: * @param propertyStructureName the property structure name
124: * @param propertyIdentifier the property identifier
125: */
126: public WizardEvent(UserCredentials userCredentials, Map properties,
127: String serviceIdentifier, String propertyUpdaterName,
128: String propertyStructureName, Long propertyIdentifier) {
129: super (userCredentials);
130: this .properties = properties;
131: this .serviceIdentifier = serviceIdentifier;
132: this .propertyUpdaterName = propertyUpdaterName;
133: this .propertyStructureName = propertyStructureName;
134: this .propertyIdentifier = propertyIdentifier;
135: }
136:
137: /**
138: * Returns the Map of properties of this WizardEvent
139: *
140: * @return a Map with the properties of the event
141: */
142: public Map getProperties() {
143: return properties;
144: }
145:
146: /**
147: * Sets a new map of properties for a WizardEvent
148: *
149: * @param properties the new map of properties
150: */
151: public void setProperties(Map properties) {
152: this .properties = properties;
153: }
154:
155: /**
156: * Returns the service identifier
157: *
158: * @return a String with the service identifier
159: */
160: public String getServiceIdentifier() {
161: return serviceIdentifier;
162: }
163:
164: /**
165: * Sets a new value for the service identifier
166: *
167: * @param serviceIdentifier the new value for the service identifier
168: */
169: public void setServiceIdentifier(String serviceIdentifier) {
170: this .serviceIdentifier = serviceIdentifier;
171: }
172:
173: /**
174: * Returns the property updater name
175: *
176: * @return a String with the property updater name
177: */
178: public String getPropertyUpdaterName() {
179: return propertyUpdaterName;
180: }
181:
182: /**
183: * Sets a new value for the property updater name
184: *
185: * @param propertyUpdaterName the new value for the property updater
186: * name
187: */
188: public void setPropertyUpdaterName(String propertyUpdaterName) {
189: this .propertyUpdaterName = propertyUpdaterName;
190: }
191:
192: /**
193: * Returns the property structure name
194: *
195: * @return a String with the property structure name
196: */
197: public String getPropertyStructureName() {
198: return propertyStructureName;
199: }
200:
201: /**
202: * Sets a new value for the property structure name
203: *
204: * @param propertyStructureName the new value for the property
205: * structure name
206: */
207: public void setPropertyStructureName(String propertyStructureName) {
208: this .propertyStructureName = propertyStructureName;
209: }
210:
211: /**
212: * Returns the property identifier
213: *
214: * @return a Long with the property identifier
215: */
216: public Long getPropertyIdentifier() {
217: return propertyIdentifier;
218: }
219:
220: /**
221: * Sets a new value for the property identifier
222: *
223: * @param propertyIdentifier the new value for the property
224: * identifier
225: */
226: public void setPropertyIdentifier(Long propertyIdentifier) {
227: this.propertyIdentifier = propertyIdentifier;
228: }
229:
230: }
|