/* ****************************************************************************** * Copyright (c) 2006-2012 XMind Ltd. and others. * * This file is a part of XMind 3. XMind releases 3 and * above are dual-licensed under the Eclipse Public License (EPL), * which is available at http://www.eclipse.org/legal/epl-v10.html * and the GNU Lesser General Public License (LGPL), * which is available at http://www.gnu.org/licenses/lgpl.html * See http://www.xmind.net/license.html for details. * * Contributors: * XMind Ltd. - initial API and implementation *******************************************************************************/ package org.xmind.core.io; import java.io.InputStream; import java.util.ArrayList; import java.util.Iterator; public interface IInputSource { Iterator<String> NO_ENTRIES = new ArrayList<String>(0).iterator(); /** * * @param entryName * @return */ boolean hasEntry(String entryName); /** * * @return */ Iterator<String> getEntries(); /** * * @param entryName * @return */ InputStream getEntryStream(String entryName); /** * Returns the file size of the specific entry. * * @param entryName * The name of the entry * @return The file size of the specific entry; or <code>-1</code> if the * entry does not exist */ long getEntrySize(String entryName); /** * Returns the last modification time of the specific entry. * * @param entryName * The name of the entry * @return The last modification time of the specific entry; or * <code>-1</code> if the entry does not exist */ long getEntryTime(String entryName); }