using System;
using ICSharpCode.SharpZipLib.Core;
using static ICSharpCode.SharpZipLib.Zip.ZipEntryFactory;
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; }
///
/// Get the in use.
///
TimeSetting Setting { get; }
///
/// Get the value to use when is set to ,
/// or if not specified, the value of when the class was the initialized
///
DateTime FixedDateTime { get; }
}
}