/** * This file is part of muCommander, http://www.mucommander.com * Copyright (C) 2002-2016 Maxence Bernard * * muCommander is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * muCommander 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 General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.mucommander.commons.file.archive; import com.mucommander.commons.file.AbstractFile; /** * <code>AbstractROArchiveFile</code> represents a read-only archive file. This class is abstract and implemented * by read-only archive files. * * <p> * <code>AbstractROArchiveFile</code> implementations only have to provide two methods: * <ul> * <li>{@link #getEntryIterator()} to list the entries contained by the archive in a flat, non hierarchical way * <li>{@link AbstractArchiveFile#getEntryInputStream(ArchiveEntry, ArchiveEntryIterator)} to retrieve a particular entry's content. * </ul> * The {@link #isWritable()} method is implemented to always returns <code>false</code>. * </p> * * @author Maxence Bernard */ public abstract class AbstractROArchiveFile extends AbstractArchiveFile { /** * Creates an AbstractROArchiveFile on top of the given file. * * @param file the file on top of which to create the archive */ protected AbstractROArchiveFile(AbstractFile file) { super(file); } //////////////////////////////////////// // AbstractArchiveFile implementation // //////////////////////////////////////// /** * Returns <code>false</code>: <code>AbstractROArchiveFile</code> implementations are not capable of adding or * deleting entries. * * @return false */ @Override public final boolean isWritable() { return false; } }