Package org.w3c.jigsaw.ssi.commands

Source Code of org.w3c.jigsaw.ssi.commands.CookieCommand

// CookieCommand.java
// $Id: CookieCommand.java,v 1.4 2000/08/16 21:37:47 ylafon Exp $ 
// (c) COPYRIGHT MIT and INRIA, 1997.
// Please first read the full copyright statement in file COPYRIGHT.html

package org.w3c.jigsaw.ssi.commands;

import java.util.Dictionary;

import org.w3c.www.http.HTTP;
import org.w3c.www.http.HttpCookie;
import org.w3c.www.http.HttpCookieList;
import org.w3c.www.http.HttpMessage;

import org.w3c.jigsaw.http.Reply;
import org.w3c.jigsaw.http.Request;

import org.w3c.jigsaw.ssi.SSIFrame;

import org.w3c.util.ArrayDictionary;

/**
* Cookies access from server side includes.
* Powerfull thingy !
*/

public class CookieCommand implements Command {
    private final static String NAME = "cookie";
    private static final boolean debug = true;

    private static final String[] keys = {
  "get"// get=<cookie-name> alt=<content>
  "if"// if=<cookie-name>  then=<content> alt=<content>
  "alt",
  "then"
    };

    public String getName() {
  return NAME;
    }

    public Reply execute(SSIFrame ssiframe
       , Request request
       , ArrayDictionary parameters
       , Dictionary variables) {
  Object values[]  = parameters.getMany(keys);
  String pget  = (String) values[0];
  String pif   = (String) values[1];
  String palt  = (String) values[2];
  String pthen = (String) values[3];

  if ( debug )
      System.out.println("cookie: get="+pget
             +", if="+pif
             +", alt="+palt
             +", then="+pthen);
  String content   = null;

  if ( pget != null ) {
      // Try acessing that cookie value:
      HttpCookieList list   = request.getCookie();
      HttpCookie     cookie = null;
      if ( list != null )
    cookie = list.getCookie(pget);
      content = (cookie == null) ? palt : cookie.getValue();
  } else if ( pif != null ) {
      HttpCookieList list   = request.getCookie();
      HttpCookie     cookie = null;
      if ( list != null )
    cookie = list.getCookie(pif);
      content = (cookie != null) ? pthen : palt;
  }
  // We are NOT doing notMod hack here (tricky and useless ?)
  Reply reply = ssiframe.createCommandReply(request, HTTP.OK);
  reply.setContent(content);
  return reply;
    }

    public String getValue(Dictionary variables, String variable,
         Request request) {
  return "null";
    }

    /**
     * return true if reply can be cached.
     * @return a boolean.
     */
    public boolean acceptCaching() {
  return true;
    }

}
TOP

Related Classes of org.w3c.jigsaw.ssi.commands.CookieCommand

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.