View Javadoc

1   /* HasViaDecideRule
2   *
3   * $Id: HasViaDecideRule.java 4649 2006-09-25 17:16:55Z paul_jack $
4   *
5   * Created on Aug 11, 2006
6   *
7   * Copyright (C) 2006 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  import org.archive.crawler.datamodel.CandidateURI;
28  
29  
30  
31  /***
32   * Rule applies the configured decision for any URI which has a 'via' 
33   * (essentially, any URI that was a seed or some kinds of mid-crawl adds).
34   *
35   * @author gojomo
36   */
37  public class HasViaDecideRule extends PredicatedDecideRule {
38  
39      private static final long serialVersionUID = 1670292311303097735L;
40  
41      /***
42       * Usual constructor. 
43       * @param name Name of this DecideRule.
44       */
45      public HasViaDecideRule(String name) {
46          super(name);
47          setDescription("HasViaDecideRule. Applies configured decision " +
48                  "to any URI that has a 'via'.");
49      }
50  
51      /***
52       * Evaluate whether given object is over the threshold number of
53       * hops.
54       * 
55       * @param object
56       * @return true if the mx-hops is exceeded
57       */
58      protected boolean evaluate(Object object) {
59          try {
60              CandidateURI curi = (CandidateURI)object;
61              return curi.getVia() != null; 
62          } catch (ClassCastException e) {
63              // if not CrawlURI, always disregard
64              return false; 
65          }
66      }
67  }