/* * This file is part of the Heritrix web crawler (crawler.archive.org). * * Licensed to the Internet Archive (IA) by one or more individual * contributors. * * The IA licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.archive.modules.extractor; /** * The kind of "hop" from one URI to another. Each hop type can be * represented by a single character; strings of these characters can * appear in logs. Eg, "LLLX" means that a URI was three normal links from * a seed, and then one speculative link. * * @author pjack */ public enum Hop { /** Navigation links, like A/@HREF. */ NAVLINK('L'), /** Implied prerequisite links, like dns or robots. */ PREREQ('P'), /** Embedded links necessary to render the page, like IMG/@SRC. */ EMBED('E'), /** * Speculative/aggressively extracted links, perhaps embed or nav, * as in javascript. */ SPECULATIVE('X'), /** * Referral/redirect links, like header 'Location:' on a 301/302 response. */ REFER('R'), /** * Inferred/implied links -- not necessarily literally in the source * material, but deduced by convention. */ INFERRED('I'), /** Synthesized form-submit */ SUBMIT('S'); /** The hop character for logs. */ private char hopChar; protected String hopString; /** * Constructor. * * @param hopChar the hop character for logs */ private Hop(char hopChar) { this.hopChar = hopChar; this.hopString = ""+hopChar; } /** * Returns a hop character suitable for display in logs. * * @return the hop character */ public char getHopChar() { return hopChar; } public String getHopString() { return hopString; } }