org.eclipse.jetty.rewrite.handler

## Class Rule

- java.lang.Object
- - org.eclipse.jetty.rewrite.handler.Rule

Direct Known Subclasses:
  HeaderRule, LegacyRule, MsieSslRule, PatternRule, RegexRule, RuleContainer, ValidUrlRule

    public abstract class Rule
    extends Object

An abstract rule for creating rewrite rules.

### Nested Class Summary

Nested Classes
`static interface` `Rule.ApplyURI` Interface used to apply a changed target if `RuleContainer.setRewriteRequestURI(boolean)` is true.

### Field Summary

Fields
`protected boolean` `_handling`
`protected boolean` `_terminating`

### Constructor Summary

Constructors
Constructor and Description
`Rule()`

### Method Summary

Methods
`boolean` `isHandling()` Returns the handling flag value.
`boolean` `isTerminating()` Returns the terminating flag value.
`abstract String` `matchAndApply(String target, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)` This method calls tests the rule against the request/response pair and if the Rule applies, then the rule's action is triggered.
`void` `setHandling(boolean handling)` Set the handling flag value.
`void` `setTerminating(boolean terminating)` Sets terminating to true or false.
`String` `toString()` Returns the handling and terminating flag values.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### _terminating

    protected boolean _terminating

#### _handling

    protected boolean _handling

### Constructor Detail

#### Rule

    public Rule()

### Method Detail

#### matchAndApply

    public abstract String matchAndApply(String target,
                       javax.servlet.http.HttpServletRequest request,
                       javax.servlet.http.HttpServletResponse response)
                                  throws IOException

This method calls tests the rule against the request/response pair and if the Rule applies, then the rule's action is triggered.

Parameters:
  `target` - The target of the request
  `request` -
  `response` -
Returns:
  The new target if the rule has matched, else null
Throws:
  `IOException` - TODO

#### setTerminating

    public void setTerminating(boolean terminating)

Sets terminating to true or false. If true, this rule will terminate the loop if this rule has been applied.

Parameters:
  `terminating` -

#### isTerminating

    public boolean isTerminating()

Returns the terminating flag value.

Returns:
  `true` if the rule needs to terminate; `false` otherwise.

#### isHandling

    public boolean isHandling()

Returns the handling flag value.

Returns:
  `true` if the rule handles the request and nested handlers should not be called.

#### setHandling

    public void setHandling(boolean handling)

Set the handling flag value.

Parameters:
  `handling` - true if the rule handles the request and nested handlers should not be called.

#### toString

    public String toString()

Returns the handling and terminating flag values.

Overrides:
  `toString` in class `Object`