View Javadoc

1   /* QueueAssignmentPolicy
2   *
3   * $Id: QueueAssignmentPolicy.java 3538 2005-06-09 01:21:45Z stack-sf $
4   *
5   * Created on Oct 5, 2004
6   *
7   * Copyright (C) 2004 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.frontier;
26  
27  import org.archive.crawler.datamodel.CandidateURI;
28  import org.archive.crawler.framework.CrawlController;
29  
30  /***
31   * Establishes a mapping from CrawlURIs to String keys (queue names).
32   * 
33   * @author gojomo
34   */
35  public abstract class QueueAssignmentPolicy {
36      /*** 
37       * Get the String key (name) of the queue to which the 
38       * CrawlURI should be assigned. 
39       * 
40       * Note that changes to the CrawlURI, or its associated 
41       * components (such as CrawlServer), may change its queue
42       * assignment.
43       * @param controller This crawls' controller.
44       * 
45       * @param cauri CandidateURI to calculate class key for.
46       * @return the String key of the queue to assign the CrawlURI 
47       */
48      public abstract String getClassKey(CrawlController controller,
49          CandidateURI cauri);
50      
51      /***
52       * Returns the maximum number of different keys this policy
53       * can create. If there is no maximum, -1 is returned (default).
54       * 
55       * @return  Maximum number of different keys, or -1 if unbounded.
56       */
57      public int maximumNumberOfKeys() {
58          return -1;
59      }
60  }