View Javadoc

1   /* NotSurtPrefixedDecideRule
2   *
3   * $Id: NotSurtPrefixedDecideRule.java 4649 2006-09-25 17:16:55Z paul_jack $
4   *
5   * Created on Apr 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 that, when 
30   * expressed in SURT form, do *not* begin with one of the prefixes
31   * in the configured set. 
32   * 
33   * The set can be filled with SURT prefixes implied or
34   * listed in the seeds file, or another external file. 
35   *
36   * @author gojomo
37   */
38  public class NotSurtPrefixedDecideRule extends SurtPrefixedDecideRule {
39  
40      private static final long serialVersionUID = -7491388438128566377L;
41  
42      //private static final Logger logger =
43      //    Logger.getLogger(NotSurtPrefixedDecideRule.class.getName());
44      /***
45       * Usual constructor. 
46       * @param name
47       */
48      public NotSurtPrefixedDecideRule(String name) {
49          super(name);
50          setDescription(
51                   "NotSurtPrefixedDecideRule. Makes the configured decision " +
52                   "for any URI which, when expressed in SURT form, does *not* " +
53                   "begin with the established prefixes (from either seeds " +
54                   "specification or an external file).");
55      }
56  
57      /***
58       * Evaluate whether given object's URI is NOT in the SURT
59       * prefix set -- simply reverse superclass's determination
60       * 
61       * @param object
62       * @return true if regexp is matched
63       */
64      protected boolean evaluate(Object object) {
65          return !super.evaluate(object);
66      }
67  }