org.w3c.jigsaw.ssi.commands
Class IfCommand

java.lang.Object
  extended by org.w3c.jigsaw.ssi.commands.IfCommand
All Implemented Interfaces:
Command, ControlCommand

public class IfCommand
extends java.lang.Object
implements ControlCommand

Implementation of the SSI if command.


Field Summary
protected static java.util.Hashtable ifstore
           
 
Constructor Summary
IfCommand()
           
 
Method Summary
 boolean acceptCaching()
          return true if reply can be cached.
protected  boolean check(CommandRegistry registry, ArrayDictionary parameters, java.util.Dictionary variables, Request request)
           
 Reply execute(SSIFrame ssiframe, Request request, ArrayDictionary parameters, java.util.Dictionary variables)
          Executes this command.
 java.lang.String getName()
          Returns the name of this command.
protected static int getPosition(java.lang.String name)
           
 java.lang.String getValue(java.util.Dictionary variables, java.lang.String var, Request request)
          Returns the (String) value of the given variable.
 int jumpTo(SSIFrame ssiframe, Request request, CommandRegistry registry, ArrayDictionary parameters, java.util.Dictionary variables)
          Give the next position in the structure witch store the SSIFrame.
 void setPosition(SSIFrame ssiframe, Request request, CommandRegistry registry, ArrayDictionary parameters, java.util.Dictionary variables, int position)
          register the command position in the structure witch store the SSIFrame.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ifstore

protected static java.util.Hashtable ifstore
Constructor Detail

IfCommand

public IfCommand()
Method Detail

acceptCaching

public boolean acceptCaching()
return true if reply can be cached.

Specified by:
acceptCaching in interface Command
Returns:
a boolean.

getValue

public java.lang.String getValue(java.util.Dictionary variables,
                                 java.lang.String var,
                                 Request request)
Returns the (String) value of the given variable.

Specified by:
getValue in interface Command
Returns:
a String instance.

getPosition

protected static int getPosition(java.lang.String name)
                          throws ControlCommandException
Throws:
ControlCommandException

setPosition

public void setPosition(SSIFrame ssiframe,
                        Request request,
                        CommandRegistry registry,
                        ArrayDictionary parameters,
                        java.util.Dictionary variables,
                        int position)
register the command position in the structure witch store the SSIFrame.

Specified by:
setPosition in interface ControlCommand

execute

public Reply execute(SSIFrame ssiframe,
                     Request request,
                     ArrayDictionary parameters,
                     java.util.Dictionary variables)
Executes this command. Might modify variables. Must not modify the parameters.

It may handle conditional requests, except that if it replies with a status of HTTP.NOT_MODIFIED, it must still reply with a content (the same content that it would have returned for an inconditional request). This is because further SSI commands down the line may decide thay they have been modified, and then a content must be emitted by SSIFrame.

Specified by:
execute in interface Command
Parameters:
request - the original HTTP request
parameters - The parameters for this command
variables - The global variables for the parse
Returns:
a Reply with the output from the command

check

protected boolean check(CommandRegistry registry,
                        ArrayDictionary parameters,
                        java.util.Dictionary variables,
                        Request request)

jumpTo

public int jumpTo(SSIFrame ssiframe,
                  Request request,
                  CommandRegistry registry,
                  ArrayDictionary parameters,
                  java.util.Dictionary variables)
           throws ControlCommandException
Give the next position in the structure witch store the SSIFrame.

Specified by:
jumpTo in interface ControlCommand
Returns:
An integer
Throws:
ControlCommandException - if action failed.

getName

public java.lang.String getName()
Returns the name of this command. (Case sensitivity is up to the lookupCommand method in the command registry.)

Specified by:
getName in interface Command
Returns:
the name of the command
See Also:
CommandRegistry.lookupCommand(java.lang.String)