Package com.opensymphony.module.sitemesh.mapper

# Class RobotDecoratorMapper

java.lang.Object
com.opensymphony.module.sitemesh.mapper.AbstractDecoratorMapper
com.opensymphony.module.sitemesh.mapper.RobotDecoratorMapper

All Implemented Interfaces:
  `DecoratorMapper`

public class RobotDecoratorMapper extends AbstractDecoratorMapper
The RobotDecoratorMapper will use the specified decorator when the requester is identified as a robot (also known as spider, crawler, ferret) of a search engine.

The name of this decorator should be supplied in the `decorator` property.

Version:
  $Revision: 1.3 $
Author:
  Mathias Bogaert
See Also:
  - `DecoratorMapper`

## Field Summary

Fields
Modifier and Type
Field
Description
`private static final String[]`
`botAgents`
All known robot user-agent headers (list can be found here).
`private static final String[]`
`botHosts`
All known robot hosts (list can be found here).
`private String`
`decoratorName`

### Fields inherited from class com.opensymphony.module.sitemesh.mapper.AbstractDecoratorMapper

`config, parent`

## Constructor Summary

Constructors
Constructor
Description
`RobotDecoratorMapper()`

## Method Summary

Modifier and Type
Method
Description
`Decorator`
`getDecorator(javax.servlet.http.HttpServletRequest request, Page page)`
Delegate to parent.
`void`
`init(Config config, Properties properties, DecoratorMapper parent)`
Set parent.
`private static boolean`
`isBot(javax.servlet.http.HttpServletRequest request)`
Check if the current request came from a robot (also known as spider, crawler, ferret)

### Methods inherited from class com.opensymphony.module.sitemesh.mapper.AbstractDecoratorMapper

`getNamedDecorator`

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

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

## Field Details

### decoratorName

private String decoratorName

### botHosts

private static final String[] botHosts
All known robot hosts (list can be found here).

### botAgents

private static final String[] botAgents
All known robot user-agent headers (list can be found here).

NOTE: To avoid bad detection:

- Robots with ID of 2 letters only were removed
- Robot called "webs" were removed
- directhit was changed in direct_hit (its real id)

## Constructor Details

### RobotDecoratorMapper

public RobotDecoratorMapper()

## Method Details

### init

public void init(Config config, Properties properties, DecoratorMapper parent) throws InstantiationException
Description copied from class: `AbstractDecoratorMapper`
Set parent.

Specified by:
  `init` in interface `DecoratorMapper`
Overrides:
  `init` in class `AbstractDecoratorMapper`
Parameters:
  `config` - Config supplied by Servlet or Filter.
  `properties` - Any initialization properties (specific to implementation).
Throws:
  `InstantiationException` - should be thrown if the implementation cannot be initialized properly.

### getDecorator

public Decorator getDecorator(javax.servlet.http.HttpServletRequest request, Page page)
Description copied from class: `AbstractDecoratorMapper`
Delegate to parent.

Specified by:
  `getDecorator` in interface `DecoratorMapper`
Overrides:
  `getDecorator` in class `AbstractDecoratorMapper`

### isBot

private static boolean isBot(javax.servlet.http.HttpServletRequest request)
Check if the current request came from a robot (also known as spider, crawler, ferret)