    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  }