Please feel free to add attached CookieMatcher into Cocoon codebase, if You find it useful.
Maciek Kaminski [EMAIL PROTECTED]
package org.apache.cocoon.matching; import org.apache.avalon.framework.parameters.Parameters; import org.apache.avalon.framework.logger.AbstractLoggable; import org.apache.cocoon.Constants; import org.apache.cocoon.environment.ObjectModelHelper; import org.apache.cocoon.environment.Cookie; import org.apache.cocoon.environment.Request; import org.apache.cocoon.environment.Response; import org.apache.cocoon.environment.Cookie; import org.apache.cocoon.sitemap.PatternException; import java.util.Map; import java.util.HashMap; /** * * Matches cookies agains given name. Returns name, value pairs for all cookies. * @author <a href="mailto:[EMAIL PROTECTED]">Maciek Kaminski</a> */ public class CookieMatcher extends AbstractLoggable implements Matcher { public Map match (String pattern, Map objectModel, Parameters parameters) throws PatternException { if (pattern == null) { throw new PatternException("No cookie name given."); } Request request = (Request) objectModel.get(Constants.REQUEST_OBJECT); Cookie[] cookies = request.getCookies(); HashMap result = null; if (cookies != null) { for ( int i = 0; i < cookies.length; i++) { Cookie cookie = cookies[i]; if (cookie.getName().equals(pattern)) { result = new HashMap(); for ( int j = 0; j < cookies.length; j++) { result.put(cookie.getName(), cookie.getValue()); } } } } if (result == null) { getLogger().debug("Cookie'" + pattern + "' not set."); } return result; } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]