## org.w3c.jigsaw.ssi.commands
Class IfCommand

    java.lang.Object
      |
      +--org.w3c.jigsaw.ssi.commands.IfCommand

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.
  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.
  Returns:
    a String instance.

### getPosition

    protected static int getPosition(java.lang.String name)
                              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.

  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.)
  Returns:
    the name of the command
  See Also:
    `CommandRegistry.lookupCommand(java.lang.String)`