Class RobotDecoratorMapper

  • All Implemented Interfaces:
    DecoratorMapper

    public final 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.2 $
    Author:
    Mathias Bogaert
    See Also:
    DecoratorMapper
    • Field Summary

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

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Decorator getDecorator​(javax.servlet.http.HttpServletRequest request, Page page)
      Delegate to parent.
      void init​(Config config, java.util.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 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • decoratorName

        private java.lang.String decoratorName
      • botHosts

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

        private static final java.lang.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 Detail

      • RobotDecoratorMapper

        public RobotDecoratorMapper()
    • Method Detail

      • init

        public void init​(Config config,
                         java.util.Properties properties,
                         DecoratorMapper parent)
                  throws java.lang.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:
        java.lang.InstantiationException - should be thrown if the implementation cannot be initialized properly.
      • 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)