Class AbstractPackageRegistry

    • Method Detail

      • isStrictByDefault

        public boolean isStrictByDefault()
      • overwritePrimaryTypesOfFoldersByDefault

        public boolean overwritePrimaryTypesOfFoldersByDefault()
      • getDefaultIdConflictPolicy

        public IdConflictPolicy getDefaultIdConflictPolicy()
      • contains

        public abstract boolean contains​(PackageId id)
                                  throws IOException
        Checks if this registry contains the package with the given id.
        Specified by:
        contains in interface PackageRegistry
        Parameters:
        id - the package id.
        Returns:
        true if the package is registered.
        Throws:
        IOException - if an I/O error occurs.
      • register

        public abstract PackageId register​(InputStream in,
                                           boolean replace)
                                    throws IOException,
                                           PackageExistsException
        Registers a package provided via an input stream. The method fails, if a package with the same id already exists, and replace is set to false. otherwise the existing package is replaced.
        Specified by:
        register in interface PackageRegistry
        Parameters:
        in - the input stream to the package data
        replace - true if existing package should be replaced.
        Returns:
        the new package id.
        Throws:
        IOException - if an I/O error occurs.
        PackageExistsException - if the package exists and replace is false.
      • register

        public abstract PackageId register​(File file,
                                           boolean replace)
                                    throws IOException,
                                           PackageExistsException
        Registers a package provided via a file. The method fails, if a package with the same id already exists, and replace is set to false; otherwise the existing package is replaced.
        Specified by:
        register in interface PackageRegistry
        Parameters:
        file - the file to the package data
        replace - true if existing package should be replaced.
        Returns:
        the new package id.
        Throws:
        IOException - if an I/O error occurrs.
        PackageExistsException - if the package exists and replace is false.
      • registerExternal

        public abstract PackageId registerExternal​(File file,
                                                   boolean replace)
                                            throws IOException,
                                                   PackageExistsException
        Registers a package provided via an external file. The binary data of the package will not be copied into the underlying persistence but only be referenced. Removing such a linked package afterwards will not delete the original file. The method fails, if a package with the same id already exists, and replace is set to false; otherwise the existing package is replaced.
        Specified by:
        registerExternal in interface PackageRegistry
        Parameters:
        file - the file to the package data.
        replace - true if existing package should be replaced.
        Returns:
        the new package id.
        Throws:
        IOException - if an I/O error occurrs.
        PackageExistsException - if the package exists and replace is false.
      • resolve

        public abstract PackageId resolve​(Dependency dependency,
                                          boolean onlyInstalled)
                                   throws IOException
        Tries to resolve the given dependency and returns the id of the package that matches the dependency filter best.
        Specified by:
        resolve in interface PackageRegistry
        Parameters:
        dependency - the dependency to resolve against.
        onlyInstalled - if true only installed packages are respected.
        Returns:
        the package id or null
        Throws:
        IOException - if an I/O error occurrs.
      • usage

        @NotNull
        public @NotNull PackageId[] usage​(PackageId id)
                                   throws IOException
        Returns the package ids of installed packages that depend on the given package.
        Specified by:
        usage in interface PackageRegistry
        Parameters:
        id - the package id to search for
        Returns:
        the array of package ids.
        Throws:
        IOException - if an I/O error occurs.
      • createExecutionPlan

        @NotNull
        public @NotNull ExecutionPlanBuilder createExecutionPlan()
        Creates a new execution plan builder. The builder allows to create an execution plan for package installation related tasks.
        Specified by:
        createExecutionPlan in interface PackageRegistry
        Returns:
        a new builder
      • getRelativeInstallationPath

        public static String getRelativeInstallationPath​(PackageId id)
        Returns the relative path of this package. please note that since 2.3 this also includes the version, but never the extension (.zip).
        Parameters:
        id - the package id
        Returns:
        the relative path of this package
        Since:
        2.2
      • createRandomPid

        protected static PackageId createRandomPid()
        Creates a random package id for packages that lack one.
        Returns:
        a random package id.