/* Wotonomy: OpenStep design patterns for pure Java applications. Copyright (C) 2000 Blacksmith, Inc. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, see http://www.gnu.org */ package net.wotonomy.web; import java.io.Serializable; import net.wotonomy.foundation.NSDictionary; /** * This class represents a static or dynamic portion of the content returned to * a request. Each request walks a tree of WOElements to generate a response. * * @author michael@mpowers.net * @author $Author: cgruber $ * @version $Revision: 905 $ */ public abstract class WOElement implements WOActionResults, Serializable { private static final long serialVersionUID = 3854088436393061500L; NSDictionary associations; /** * Default constructor. Performs necessary initialization. */ public WOElement() { } /** * This method is called to retrieve user-entered data from the request. * WOElements should retrieve data from the request based on their elementID and * set values in the context's current WOComponent, typically those values that * are associated with the element in the binding. This implementation does * nothing. */ public void takeValuesFromRequest(WORequest aRequest, WOContext aContext) { // does nothing } /** * This method is called on all objects and elements of the application until a * non-null value is returned. WOElements should first check to see if they are * the target of an action by checking the WOContext's senderID to see if it * matches this element's elementID. If this element is the target, it should * perform an appropriate action on the context's current WOComponent, usually * the action specified in the binding, and return the result of that action. * This implementation returns null. */ public WOActionResults invokeAction(WORequest aRequest, WOContext aContext) { return null; } /** * This method is called on all elements of the content tree to build a response * to a user request. The message should be forwarded to any child elements so * that the entire tree is traversed. This implementation does nothing. */ public void appendToResponse(WOResponse aResponse, WOContext aContext) { // does nothing } /** * Package access only. Called to initialize the component with the proper * context before the start of the request-response cycle. If the context has a * current component, that component becomes this component's parent. */ void ensureAwakeInContext(WOContext aContext) { // does nothing } }