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; } } }