001/*
002 * #%L
003 * Netarchivesuite - common
004 * %%
005 * Copyright (C) 2005 - 2014 The Royal Danish Library, the Danish State and University Library,
006 *             the National Library of France and the Austrian National Library.
007 * %%
008 * This program is free software: you can redistribute it and/or modify
009 * it under the terms of the GNU Lesser General Public License as
010 * published by the Free Software Foundation, either version 2.1 of the
011 * License, or (at your option) any later version.
012 * 
013 * This program is distributed in the hope that it will be useful,
014 * but WITHOUT ANY WARRANTY; without even the implied warranty of
015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
016 * GNU General Lesser Public License for more details.
017 * 
018 * You should have received a copy of the GNU General Lesser Public
019 * License along with this program.  If not, see
020 * <http://www.gnu.org/licenses/lgpl-2.1.html>.
021 * #L%
022 */
023package dk.netarkivet.common.distribute;
024
025import java.io.File;
026import java.io.InputStream;
027import java.io.OutputStream;
028
029import dk.netarkivet.common.exceptions.NotImplementedException;
030
031/**
032 * This is an implementation of RemoteFile which does nothing and can therefore be used in batch jobs for which no
033 * output is required.
034 */
035@SuppressWarnings({"serial"})
036public class NullRemoteFile implements RemoteFile {
037
038    /**
039     * @see RemoteFileFactory#getInstance(File, boolean, boolean, boolean)
040     */
041    public static RemoteFile getInstance(File f, Boolean useChecksums, Boolean fileDeletable, Boolean multipleDownloads) {
042        return new NullRemoteFile();
043    }
044
045    /**
046     * @see RemoteFile#copyTo(File)
047     */
048    public void copyTo(File destFile) {
049    }
050
051    /**
052     * @see RemoteFile#appendTo(OutputStream)
053     */
054    public void appendTo(OutputStream out) {
055    }
056
057    public InputStream getInputStream() {
058        return null;
059    }
060
061    /**
062     * @see RemoteFile#cleanup()
063     */
064    public void cleanup() {
065    }
066
067    /**
068     * @see RemoteFile#getSize()
069     */
070    public long getSize() {
071        return 0;
072    }
073
074    /**
075     * Return the file name.
076     *
077     * @return the file name
078     * @see RemoteFile#getName()
079     */
080    public String getName() {
081        return null;
082    }
083
084    /**
085     * Returns a MD5 Checksum on the file.
086     *
087     * @return MD5 checksum
088     * @throws NotImplementedException Because it is not implemented
089     * @see RemoteFile#getChecksum()
090     */
091    public String getChecksum() throws NotImplementedException {
092        throw new NotImplementedException("Not implemented!");
093    }
094
095}