⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 checkpoint.java

📁 最强的爬虫工程
💻 JAVA
字号:
/* Checkpoint** $Id: Checkpoint.java,v 1.2 2005/12/17 02:31:51 stack-sf Exp $** Created on Apr 25, 2004** Copyright (C) 2004 Internet Archive.** This file is part of the Heritrix web crawler (crawler.archive.org).** Heritrix is free software; you can redistribute it and/or modify* it under the terms of the GNU Lesser Public License as published by* the Free Software Foundation; either version 2.1 of the License, or* any later version.** Heritrix is distributed in the hope that it will be useful,* but WITHOUT ANY WARRANTY; without even the implied warranty of* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the* GNU Lesser Public License for more details.** You should have received a copy of the GNU Lesser Public License* along with Heritrix; if not, write to the Free Software* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*/package org.archive.crawler.datamodel;import java.io.File;import java.io.IOException;import java.io.ObjectInputStream;import java.io.Serializable;import org.archive.crawler.util.CheckpointUtils;import org.archive.util.FileUtils;/** * Record of a specific checkpoint on disk. * Used recovering from a checkpoint or displaying list of checkpoints done * so far. * @author gojomo */public class Checkpoint implements Serializable {    /**     * Generated by eclipse.     */    private static final long serialVersionUID = 5121498771788002844L;    /**     * Flag label for invalid Checkpoints     */    private static final String INVALID = "INVALID";        /**      * Name of file written with timestamp into valid checkpoints.     */    public static final String VALIDITY_STAMP_FILENAME = "valid";            private transient String timestamp;    private File directory;        /**     * Publically inaccessible default constructor.     */    protected Checkpoint() {        super();    }    /**     * Create a Checkpoint instance based on the given prexisting     * checkpoint directory     *     * @param checkpointDir Directory that holds checkpoint.     */    public Checkpoint(File checkpointDir) {        this.directory = checkpointDir;        readValid();    }        private void readObject(ObjectInputStream s)    throws IOException, ClassNotFoundException {        s.defaultReadObject();        readValid();    }        protected void readValid() {        File validityStamp = new File(this.directory,            VALIDITY_STAMP_FILENAME);        if (validityStamp.exists() == false) {            this.timestamp = INVALID;        } else {            try {                this.timestamp = FileUtils.readFileAsString(validityStamp).                    trim();            } catch (IOException e) {                e.printStackTrace();                this.timestamp = INVALID;            }        }    }    /**     * @return Return true if this checkpoint appears complete/resumable     * (has 'valid' stamp file).     */    public boolean isValid() {        return timestamp != INVALID;    }    /**     * @return Returns name of this Checkpoint     */    public String getName() {        return this.directory.getName();    }    /**     * @return Return the combination of given name and timestamp most commonly     * used in administrative interface.     */    public String getDisplayName() {        return getName() + " [" + getTimestamp() + "]";    }    /**     * @return Returns the timestamp.     */    public String getTimestamp() {        return timestamp;    }    /**     * @return Returns the checkpoint directory.     */    public File getDirectory() {        return this.directory;    }        /**     * @return True if this checkpoint contains bdb logs (It won't if we're     * doing 'fast' checkpoints).     */    public boolean hasBdbjeLogs() {        boolean decision = false;        File bdbjeDir = CheckpointUtils.getBdbSubDirectory(this.directory);        if (bdbjeDir.exists()) {            String [] files =                bdbjeDir.list(CheckpointUtils.getJeLogsFilter());            decision = (files != null && files.length > 0);        }        return decision;     } }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -