private void checkAndInstallAddOnsNotInstalled() {
        List<AddOn> runnableAddOns = new ArrayList<>();
        for (AddOn addOn : aoc.getAddOns()) {
            if (AddOn.InstallationStatus.NOT_INSTALLED == addOn.getInstallationStatus() && addOnLoaders.get(addOn.getId()) == null) {
                AddOnRunRequirements reqs = addOn.calculateRunRequirements(aoc.getInstalledAddOns());
                if (reqs.isRunnable()) {
                    runnableAddOns.add(addOn);
                }
            }
        }

        for (AddOn addOn : runnableAddOns) {
            addAddOnImpl(addOn);
        }
    }
private void checkAndInstallAddOnsNotInstalled ( ) { List < AddOn > runnableAddOns = new ArrayList < > ( ) ; for ( AddOn addOn : aoc . getAddOns ( ) ) { if ( AddOn . InstallationStatus . NOT_INSTALLED == addOn . getInstallationStatus ( ) && addOnLoaders . get ( addOn . getId ( ) ) == null ) { AddOnRunRequirements reqs = addOn . calculateRunRequirements ( aoc . getInstalledAddOns ( ) ) ; if ( reqs . isRunnable ( ) ) { runnableAddOns . add ( addOn ) ; } } } for ( AddOn addOn : runnableAddOns ) { addAddOnImpl ( addOn ) ; } }
Checks and installs all the add-ons whose installation status is {@code NOT_INSTALLED} that have (now) all required
dependencies fulfilled.
<p>
Should be called after an installation of an add-on.

@see #addAddOnImpl(AddOn)
@see AddOn.InstallationStatus#NOT_INSTALLED
@since 2.4.0