    1   /* NotMatchesListRegExpDecideRule
    2    *
    3    * $Id: NotMatchesListRegExpDecideRule.java 4721 2006-11-14 20:03:18Z stack-sf $
    4    *
    5    * Created on 30.5.2005
    6    *
    7    * Copyright (C) 2005 Internet Archive.
    8    *
    9    * This file is part of the Heritrix web crawler (crawler.archive.org).
    10   *
    11   * Heritrix is free software; you can redistribute it and/or modify
    12   * it under the terms of the GNU Lesser Public License as published by
    13   * the Free Software Foundation; either version 2.1 of the License, or
    14   * any later version.
    15   *
    16   * Heritrix is distributed in the hope that it will be useful,
    17   * but WITHOUT ANY WARRANTY; without even the implied warranty of
    18   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    19   * GNU Lesser Public License for more details.
    20   *
    21   * You should have received a copy of the GNU Lesser Public License
    22   * along with Heritrix; if not, write to the Free Software
    23   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    24   */
    25  package org.archive.crawler.deciderules;
    26
    27
    28  /***
    29   * Rule applies configured decision to any URIs which do *not*
    30   * match the supplied regexp.
    31   *
    32   * @author Kristinn Sigurdsson
    33   */
    34  public class NotMatchesListRegExpDecideRule extends MatchesListRegExpDecideRule {
    35
    36      private static final long serialVersionUID = 8691360087063555583L;
    37
    38      //private static final Logger logger =
    39      //    Logger.getLogger(NotMatchesListRegExpDecideRule.class.getName());
    40
    41
    42      /***
    43       * Usual constructor.
    44       * @param name
    45       */
    46      public NotMatchesListRegExpDecideRule(String name) {
    47          super(name);
    48          setDescription("NotMatchesListRegExpDecideRule. Applies the configured " +
    49              "decision to URIs *not* matching the supplied regular " +
    50              "expressions. The list of regular expressions can be " +
    51              "considered logically AND or OR. " +
    52              "NOTE: This means that if there are no regular expressions in " +
    53              "the list, this rule will apply to *all* URIs!");
    54      }
    55
    56      /***
    57       * Evaluate whether given object's string version does not match
    58       * configured regexps (by reversing the superclass's answer).
    59       *
    60       * @param object Object to make decision about.
    61       * @return true if the regexps are not matched
    62       */
    63      protected boolean evaluate(Object object) {
    64          return ! super.evaluate(object);
    65      }
    66  }