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.arcrepository;
024
025import java.io.InputStream;
026
027import dk.netarkivet.common.exceptions.ArgumentNotValid;
028
029/**
030 * Simple helper class to store the fact, whether we have a stream which contains a header or a stream, which does not.
031 */
032public class ResultStream {
033
034    /** The inputstream w/ or without a HTTP header. */
035    private final InputStream inputstream;
036
037    /** Does the inputstream contains a HTTP header?. */
038    private final boolean containsHeader;
039
040    /**
041     * Create a ResultStream with the given inputStream and information of whether or not the inputStream contains a
042     * header.
043     *
044     * @param inputstream An inputStream w/ the data for a stored URI
045     * @param containsHeader true, if the stream contains a header, otherwise false
046     */
047    public ResultStream(InputStream inputstream, boolean containsHeader) {
048        ArgumentNotValid.checkNotNull(inputstream, "InputStream inputstream");
049        this.inputstream = inputstream;
050        this.containsHeader = containsHeader;
051    }
052
053    /**
054     * @return the inputstream
055     */
056    public InputStream getInputStream() {
057        return this.inputstream;
058    }
059
060    /**
061     * @return true, if the resultStream contains a header; otherwise false.
062     */
063    public boolean containsHeader() {
064        return this.containsHeader;
065    }
066
067}