vgritsenko 02/02/02 17:42:16 Modified: src/java/org/apache/cocoon/components/language/markup/xsp/java session.xsl Added: src/java/org/apache/cocoon/components/language/markup/xsp XSPSessionHelper.java Log: Move session code into XSPSessionHelper Revision Changes Path 1.1 xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/XSPSessionHelper.java Index: XSPSessionHelper.java =================================================================== /***************************************************************************** * Copyright (C) The Apache Software Foundation. All rights reserved. * * ------------------------------------------------------------------------- * * This software is published under the terms of the Apache Software License * * version 1.1, a copy of which has been included with this distribution in * * the LICENSE file. * *****************************************************************************/ package org.apache.cocoon.components.language.markup.xsp; import org.apache.cocoon.Constants; import org.apache.cocoon.environment.Request; import org.apache.cocoon.environment.Session; import org.xml.sax.ContentHandler; import org.xml.sax.SAXException; import org.xml.sax.helpers.AttributesImpl; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; import java.util.Map; /** * The <code>Session</code> object helper * * @author <a href="mailto:[EMAIL PROTECTED]">Ricardo Rocha</a> * @author <a href="mailto:[EMAIL PROTECTED]">Vadim Gritsenko</a> * @version CVS $Revision: 1.1 $ $Date: 2002/02/03 01:42:16 $ */ public class XSPSessionHelper { /** * FIXME (VG): Remove */ private static final String URI = "http://apache.org/xsp/session/2.0"; private static final String PREFIX = "session"; /** * Sets the given session attribute value * * @param objectModel The Map objectModel * @param name The parameter name * @param content The parameter value */ public static void setSessionAttribute(Map objectModel, String name, Object content) { Request request = (Request) objectModel.get(Constants.REQUEST_OBJECT); Session session = request.getSession(false); session.setAttribute(name, content); } /** * Return the given session attribute value or a user-provided default if * none was specified. * * @param objectModel The Map objectModel * @param name The parameter name */ public static Object getSessionAttribute(Map objectModel, String name) { Request request = (Request) objectModel.get(Constants.REQUEST_OBJECT); Session session = request.getSession(false); return session.getAttribute(name); } /** * Return the given session attribute value or a user-provided default if * none was specified. * * @param objectModel The Map objectModel * @param name The parameter name * @param defaultValue Value to substitute in absence of a parameter value */ public static Object getSessionAttribute(Map objectModel, String name, Object defaultValue) { Request request = (Request) objectModel.get(Constants.REQUEST_OBJECT); Session session = request.getSession(false); Object value = null; if (session != null) { value = session.getAttribute(name); } if (value == null) { value = defaultValue; } return value; } /** * Get the session attribute names. * * @param objectModel The Map objectModel */ public static List getSessionAttributeNames(Map objectModel) { Request request = (Request) objectModel.get(Constants.REQUEST_OBJECT); ArrayList v = new ArrayList(); Enumeration e = request.getSession().getAttributeNames(); while (e.hasMoreElements()) { v.add(e.nextElement()); } return v; } /** * Output the given session attribute value or a user-provided default if * none was specified. * * @param objectModel The Map objectModel * @param contentHandler The SAX content handler * @param name The parameter name * @param defaultValue Value to substitute in absence of a parameter value * @exception SAXException If a SAX error occurs */ public static void getSessionAttribute(Map objectModel, ContentHandler contentHandler, String name, Object defaultValue) throws SAXException { AttributesImpl attr = new AttributesImpl(); XSPObjectHelper.addAttribute(attr, "name", name); XSPObjectHelper.elementData( URI, PREFIX, contentHandler, "attribute", (String) getSessionAttribute(objectModel, name, defaultValue), attr ); } /** * Get the session creation time * * @param objectModel The Map objectModel */ public static long getSessionCreationTime(Map objectModel) { Request request = (Request) objectModel.get(Constants.REQUEST_OBJECT); return request.getSession().getCreationTime(); } /** * Get the session id * * @param objectModel The Map objectModel */ public static String getSessionId(Map objectModel) { Request request = (Request) objectModel.get(Constants.REQUEST_OBJECT); return request.getSession().getId(); } /** * Get the session last accessed time * * @param objectModel The Map objectModel */ public static long getSessionLastAccessedTime(Map objectModel) { Request request = (Request) objectModel.get(Constants.REQUEST_OBJECT); return request.getSession().getLastAccessedTime(); } /** * Get the session max inactive interval * * @param objectModel The Map objectModel */ public static long getSessionMaxInactiveInterval(Map objectModel) { Request request = (Request) objectModel.get(Constants.REQUEST_OBJECT); return request.getSession().getMaxInactiveInterval(); } /** * Set the session max inactive interval * @param objectModel The Map objectModel * @param interval max inactive interval */ public static void setSessionMaxInactiveInterval(Map objectModel, int interval) { Request request = (Request) objectModel.get(Constants.REQUEST_OBJECT); request.getSession().setMaxInactiveInterval(interval); } /** * Invalidate the session * @param objectModel The Map objectModel */ public static void invalidateSession(Map objectModel) { Request request = (Request) objectModel.get(Constants.REQUEST_OBJECT); request.getSession().invalidate(); } /** * Checks the isNew flag * @param objectModel The Map objectModel */ public static boolean isSessionNew(Map objectModel) { Request request = (Request) objectModel.get(Constants.REQUEST_OBJECT); return request.getSession().isNew(); } /** * Remove the specified attribute * @param objectModel The Map objectModel * @param name The parameter name */ public static void removeSessionAttribute(Map objectModel, String name) { Request request = (Request) objectModel.get(Constants.REQUEST_OBJECT); request.getSession().removeAttribute(name); } } 1.3 +29 -30 xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/java/session.xsl Index: session.xsl =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/java/session.xsl,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- session.xsl 12 Jan 2002 04:08:13 -0000 1.2 +++ session.xsl 3 Feb 2002 01:42:16 -0000 1.3 @@ -1,6 +1,5 @@ <?xml version="1.0"?> <!-- - ============================================================================ The Apache Software License, Version 1.1 ============================================================================ @@ -57,8 +56,8 @@ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsp="http://apache.org/xsp" - xmlns:session="http://apache.org/xsp/session/2.0" -> + xmlns:session="http://apache.org/xsp/session/2.0"> + <!-- *** ServletSession Templates *** --> <xsl:template match="session:get-attribute"> @@ -81,7 +80,7 @@ <xsl:when test="$as = 'xml'"> <xsp:element name="session:attribute"> <xsp:expr> - XSPRequestHelper.getSessionAttribute(objectModel, + XSPSessionHelper.getSessionAttribute(objectModel, String.valueOf(<xsl:copy-of select="$name"/>), <xsl:copy-of select="$default"/>) </xsp:expr> @@ -89,7 +88,7 @@ </xsl:when> <xsl:when test="$as = 'object'"> <xsp:expr> - XSPRequestHelper.getSessionAttribute(objectModel, + XSPSessionHelper.getSessionAttribute(objectModel, String.valueOf(<xsl:copy-of select="$name"/>), <xsl:copy-of select="$default"/>) </xsp:expr> @@ -107,7 +106,7 @@ <xsl:choose> <xsl:when test="$as = 'xml'"> <xsp:logic> - List v = XSPRequestHelper.getSessionAttributeNames(objectModel); + List v = XSPSessionHelper.getSessionAttributeNames(objectModel); </xsp:logic> <xsp:element name="session:attribute-names"> @@ -123,7 +122,7 @@ <xsl:when test="$as = 'array'"> <xsp:expr> - XSPRequestHelper.getSessionAttributeNames(objectModel) + XSPSessionHelper.getSessionAttributeNames(objectModel) </xsp:expr> </xsl:when> </xsl:choose> @@ -140,18 +139,18 @@ <xsl:when test="$as = 'xml'"> <xsp:element name="session:creation-time"> <xsp:expr> - new Date(XSPRequestHelper.getSessionCreationTime(objectModel)) + new Date(XSPSessionHelper.getSessionCreationTime(objectModel)) </xsp:expr> </xsp:element> </xsl:when> <xsl:when test="$as = 'string'"> <xsp:expr> - new Date(XSPRequestHelper.getSessionCreationTime(objectModel)) + new Date(XSPSessionHelper.getSessionCreationTime(objectModel)) </xsp:expr> </xsl:when> <xsl:when test="$as = 'long'"> <xsp:expr> - XSPRequestHelper.getSessionCreationTime(objectModel) + XSPSessionHelper.getSessionCreationTime(objectModel) </xsp:expr> </xsl:when> </xsl:choose> @@ -167,11 +166,11 @@ <xsl:choose> <xsl:when test="$as = 'xml'"> <xsp:element name="session:id"> - <xsp:expr>XSPRequestHelper.getSessionId(objectModel)</xsp:expr> + <xsp:expr>XSPSessionHelper.getSessionId(objectModel)</xsp:expr> </xsp:element> </xsl:when> <xsl:when test="$as = 'string'"> - <xsp:expr>XSPRequestHelper.getSessionId(objectModel)</xsp:expr> + <xsp:expr>XSPSessionHelper.getSessionId(objectModel)</xsp:expr> </xsl:when> </xsl:choose> </xsl:template> @@ -187,18 +186,18 @@ <xsl:when test="$as = 'xml'"> <xsp:element name="session:last-accessed-time"> <xsp:expr> - new Date(XSPRequestHelper.getSessionLastAccessedTime(objectModel)) + new Date(XSPSessionHelper.getSessionLastAccessedTime(objectModel)) </xsp:expr> </xsp:element> </xsl:when> <xsl:when test="$as = 'string'"> <xsp:expr> - new Date(XSPRequestHelper.getSessionLastAccessedTime(objectModel)) + new Date(XSPSessionHelper.getSessionLastAccessedTime(objectModel)) </xsp:expr> </xsl:when> <xsl:when test="$as = 'long'"> <xsp:expr> - XSPRequestHelper.getSessionLastAccessedTime(objectModel) + XSPSessionHelper.getSessionLastAccessedTime(objectModel) </xsp:expr> </xsl:when> </xsl:choose> @@ -215,19 +214,19 @@ <xsl:when test="$as = 'xml'"> <xsp:element name="session:max-inactive-interval"> <xsp:expr> - XSPRequestHelper.getSessionMaxInactiveInterval(objectModel) + XSPSessionHelper.getSessionMaxInactiveInterval(objectModel) </xsp:expr> </xsp:element> </xsl:when> <xsl:when test="$as = 'string'"> <xsp:expr> - String.valueOf(XSPRequestHelper.getSessionMaxInactiveInterval( + String.valueOf(XSPSessionHelper.getSessionMaxInactiveInterval( objectModel)) </xsp:expr> </xsl:when> <xsl:when test="$as = 'int'"> <xsp:expr> - XSPRequestHelper.getSessionMaxInactiveInterval(objectModel) + XSPSessionHelper.getSessionMaxInactiveInterval(objectModel) </xsp:expr> </xsl:when> </xsl:choose> @@ -235,7 +234,7 @@ <xsl:template match="session:invalidate"> <xsp:logic> - XSPRequestHelper.invalidateSession(objectModel); + XSPSessionHelper.invalidateSession(objectModel); </xsp:logic> </xsl:template> @@ -250,16 +249,16 @@ <xsl:choose> <xsl:when test="$as = 'xml'"> <xsp:element name="session:is-new"> - <xsp:expr>XSPRequestHelper.isSessionNew(objectModel)</xsp:expr> + <xsp:expr>XSPSessionHelper.isSessionNew(objectModel)</xsp:expr> </xsp:element> </xsl:when> <xsl:when test="$as = 'string'"> <xsp:expr> - String.valueOf(XSPRequestHelper.isSessionNew(objectModel)) + String.valueOf(XSPSessionHelper.isSessionNew(objectModel)) </xsp:expr> </xsl:when> <xsl:when test="$as = 'boolean'"> - <xsp:expr>XSPRequestHelper.isSessionNew(objectModel)</xsp:expr> + <xsp:expr>XSPSessionHelper.isSessionNew(objectModel)</xsp:expr> </xsl:when> </xsl:choose> </xsp:expr> @@ -271,7 +270,7 @@ </xsl:variable> <xsp:logic> - XSPRequestHelper.removeSessionAttribute(objectModel, + XSPSessionHelper.removeSessionAttribute(objectModel, String.valueOf(<xsl:copy-of select="$name"/>) ); </xsp:logic> @@ -289,7 +288,7 @@ </xsl:variable> <xsp:logic> - XSPRequestHelper.setSessionAttribute(objectModel, + XSPSessionHelper.setSessionAttribute(objectModel, String.valueOf(<xsl:copy-of select="$name"/>), <xsl:copy-of select="$content"/> ); @@ -299,7 +298,7 @@ <xsl:template match="session:set-max-inactive-interval"> <xsl:variable name="interval"> <xsl:choose> - <xsl:when test="@interval">"<xsl:value-of + <xsl:when test="@interval">"<xsl:value-of select="@interval"/>"</xsl:when> <xsl:when test="session:interval"> <xsl:call-template name="get-nested-content"> @@ -319,13 +318,13 @@ <!-- encode an URL with the session ID --> <xsl:template match="session:encode-url"> - <xsl:variable name="href">"<xsl:value-of + <xsl:variable name="href">"<xsl:value-of select="@href"/>"</xsl:variable> <xsp:element name="a"> <xsp:attribute name="href"> <xsp:expr> - XSPResponseHelper.encodeURL(objectModel, + XSPResponseHelper.encodeURL(objectModel, String.valueOf(<xsl:copy-of select="$href"/>)) </xsp:expr> </xsp:attribute> @@ -335,11 +334,11 @@ <!-- encode an URL with the session ID as a form--> <xsl:template match="session:form-encode-url"> - <xsl:variable name="action">"<xsl:value-of + <xsl:variable name="action">"<xsl:value-of select="@action"/>"</xsl:variable> - <xsl:variable name="method">"<xsl:value-of + <xsl:variable name="method">"<xsl:value-of select="@method"/>"</xsl:variable> - <xsl:variable name="onsubmit">"<xsl:value-of + <xsl:variable name="onsubmit">"<xsl:value-of select="@onsubmit"/>"</xsl:variable> <xsp:element name="form">
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]