Add() public method

Adds a dependency to the collection
public Add ( Mono.Addins.Description.Dependency dep ) : void
dep Mono.Addins.Description.Dependency /// The dependency to add. ///
return void
Esempio n. 1
0
        static void ReadDependencies(DependencyCollection deps, DependencyCollection opDeps, XmlElement elem)
        {
            foreach (XmlElement dep in elem.SelectNodes ("Dependencies/Addin")) {
                AddinDependency adep = new AddinDependency ();
                adep.AddinId = dep.GetAttribute ("id");
                string v = dep.GetAttribute ("version");
                if (v.Length != 0)
                    adep.Version = v;
                deps.Add (adep);
            }

            foreach (XmlElement dep in elem.SelectNodes ("Dependencies/Assembly")) {
                AssemblyDependency adep = new AssemblyDependency ();
                adep.FullName = dep.GetAttribute ("name");
                adep.Package = dep.GetAttribute ("package");
                deps.Add (adep);
            }

            foreach (XmlElement mod in elem.SelectNodes ("Module"))
                ReadDependencies (opDeps, opDeps, mod);
        }
Esempio n. 2
0
        internal void ResolveDependency(IProgressMonitor monitor, Dependency dep, AddinPackage parentPackage, PackageCollection toInstall, PackageCollection toUninstall, PackageCollection installedRequired, DependencyCollection unresolved)
        {
            AddinDependency adep = dep as AddinDependency;
            if (adep == null)
                return;

            string nsid = Addin.GetFullId (parentPackage.Addin.Namespace, adep.AddinId, null);

            foreach (Package p in toInstall) {
                AddinPackage ap = p as AddinPackage;
                if (ap != null) {
                    if (Addin.GetIdName (ap.Addin.Id) == nsid && ((AddinInfo)ap.Addin).SupportsVersion (adep.Version))
                        return;
                }
            }

            ArrayList addins = new ArrayList ();
            addins.AddRange (service.Registry.GetAddins ());
            addins.AddRange (service.Registry.GetAddinRoots ());

            foreach (Addin addin in addins) {
                if (Addin.GetIdName (addin.Id) == nsid && addin.SupportsVersion (adep.Version)) {
                    AddinPackage p = AddinPackage.FromInstalledAddin (addin);
                    if (!installedRequired.Contains (p))
                        installedRequired.Add (p);
                    return;
                }
            }

            AddinRepositoryEntry[] avaddins = service.Repositories.GetAvailableAddins ();
            foreach (PackageRepositoryEntry avAddin in avaddins) {
                if (Addin.GetIdName (avAddin.Addin.Id) == nsid && ((AddinInfo)avAddin.Addin).SupportsVersion (adep.Version)) {
                    toInstall.Add (AddinPackage.FromRepository (avAddin));
                    return;
                }
            }
            unresolved.Add (adep);
        }