using ICSharpCode.SharpZipLib.Core;
namespace ICSharpCode.SharpZipLib.Zip
{
///
/// Defines factory methods for creating new values.
///
public interface IEntryFactory
{
///
/// Create a for a file given its name
///
/// The name of the file to create an entry for.
/// Returns a file entry based on the passed.
ZipEntry MakeFileEntry(string fileName);
///
/// Create a for a file given its name
///
/// The name of the file to create an entry for.
/// If true get details from the file system if the file exists.
/// Returns a file entry based on the passed.
ZipEntry MakeFileEntry(string fileName, bool useFileSystem);
///
/// Create a for a file given its actual name and optional override name
///
/// The name of the file to create an entry for.
/// An alternative name to be used for the new entry. Null if not applicable.
/// If true get details from the file system if the file exists.
/// Returns a file entry based on the passed.
ZipEntry MakeFileEntry(string fileName, string entryName, bool useFileSystem);
///
/// Create a for a directory given its name
///
/// The name of the directory to create an entry for.
/// Returns a directory entry based on the passed.
ZipEntry MakeDirectoryEntry(string directoryName);
///
/// Create a for a directory given its name
///
/// The name of the directory to create an entry for.
/// If true get details from the file system for this directory if it exists.
/// Returns a directory entry based on the passed.
ZipEntry MakeDirectoryEntry(string directoryName, bool useFileSystem);
///
/// Get/set the applicable.
///
INameTransform NameTransform { get; set; }
}
}