Interface PackageRegistry

    • Method Detail

      • contains

        boolean contains​(@NotNull
                         @NotNull PackageId id)
                  throws IOException
        Checks if this registry contains the package with the given id.
        Parameters:
        id - the package id.
        Returns:
        true if the package is registered.
        Throws:
        IOException - if an I/O error occurs.
      • packages

        @NotNull
        @NotNull Set<PackageId> packages()
                                  throws IOException
        Returns as set of all packages registered in this registry.
        Returns:
        a set of package ids.
        Throws:
        IOException - if an I/O error occurs.
      • open

        @Nullable
        @Nullable RegisteredPackage open​(@NotNull
                                         @NotNull PackageId id)
                                  throws IOException
        Opens the package with the given id.
        Parameters:
        id - the package id
        Returns:
        the package or null if it does not exists.
        Throws:
        IOException - if an I/O error occurs.
      • register

        @NotNull
        @NotNull PackageId register​(@NotNull
                                    @NotNull 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.
        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

        @NotNull
        @NotNull PackageId register​(@NotNull
                                    @NotNull 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.
        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

        @NotNull
        @NotNull PackageId registerExternal​(@NotNull
                                            @NotNull 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.
        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.
      • analyzeDependencies

        @NotNull
        @NotNull DependencyReport analyzeDependencies​(@NotNull
                                                      @NotNull PackageId id,
                                                      boolean onlyInstalled)
                                               throws IOException,
                                                      NoSuchPackageException
        Creates a dependency report that lists the resolved and unresolved dependencies.
        Parameters:
        id - the package id.
        onlyInstalled - if true only installed packages are used for resolution
        Returns:
        the report
        Throws:
        IOException - if an error accessing the repository occurrs
        NoSuchPackageException - if the package with the given id does not exist.
      • resolve

        @Nullable
        @Nullable PackageId resolve​(@NotNull
                                    @NotNull 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.
        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
        @NotNull PackageId[] usage​(@NotNull
                                   @NotNull PackageId id)
                            throws IOException
        Returns the package ids of installed packages that depend on the given package.
        Parameters:
        id - the package id to search for
        Returns:
        the array of package ids.
        Throws:
        IOException - if an I/O error occurs.
      • createExecutionPlan

        @NotNull
        @NotNull ExecutionPlanBuilder createExecutionPlan()
        Creates a new execution plan builder. The builder allows to create an execution plan for package installation related tasks.
        Returns:
        a new builder