namespace OpenTap.Package
{
///
/// Interface for determining where a package definition is sourced.
///
public interface IPackageDefSource
{
}
///
/// The package definition is sourced from a .TapPackage file.
///
public interface IFilePackageDefSource : IPackageDefSource
{
///
/// The file path of the .TapPackage the package definition is loaded from.
///
string PackageFilePath { get; set; }
}
///
/// The package definition is sourced from a .TapPackage file.
///
public class FilePackageDefSource : IFilePackageDefSource
{
///
/// The file path of the .TapPackage the package definition is loaded from.
///
public string PackageFilePath { get; set; }
}
///
/// The package definition is sourced from a package repository.
///
public interface IRepositoryPackageDefSource : IPackageDefSource
{
///
/// The repository the package is sourced.
///
string RepositoryUrl { get; set; }
}
///
/// The package definition is sourced from a remote package repository server.
///
public class HttpRepositoryPackageDefSource : IRepositoryPackageDefSource
{
///
/// A direct url for downloading the package.
///
public string DirectUrl { get; set; }
///
/// The repository the package is sourced.
///
public string RepositoryUrl { get; set; }
}
///
/// The package definition is sourced from a local or remote file system storage. This can be a local folder or a remove shared file system drive.
///
public class FileRepositoryPackageDefSource : FilePackageDefSource, IRepositoryPackageDefSource
{
///
/// The repository the package is sourced.
///
public string RepositoryUrl { get; set; }
}
///
/// The package definition is loaded from an package XML file.
///
public class XmlPackageDefSource : IPackageDefSource
{
///
/// The file path to the .xml file of the package definition.
///
public string PackageDefFilePath { get; set; }
}
///
/// The package definition is sourced from an OpenTAP installation.
///
public class InstalledPackageDefSource : XmlPackageDefSource
{
///
/// The installation the package definition is sourced.
///
public Installation Installation { get; set; }
}
}