@Override public synchronized void addInstallableUnits(Collection<IInstallableUnit> installableUnits) { if (installableUnits == null || installableUnits.isEmpty()) return; if (snapshotNeeded) { units = units.clone(); idIndex = null; // Backed by units snapshotNeeded = false; } units.addAll(installableUnits); capabilityIndex = null; // Generated, not backed by units save(); }
@Override public synchronized void addInstallableUnits(Collection<IInstallableUnit> installableUnits) { if (installableUnits == null || installableUnits.isEmpty()) return; if (snapshotNeeded) { units = units.clone(); idIndex = null; // Backed by units snapshotNeeded = false; } units.addAll(installableUnits); capabilityIndex = null; // Generated, not backed by units save(); }
@Override public synchronized void addInstallableUnits(Collection<IInstallableUnit> installableUnits) { if (installableUnits == null || installableUnits.isEmpty()) return; if (snapshotNeeded) { units = units.clone(); idIndex = null; // Backed by units snapshotNeeded = false; } units.addAll(installableUnits); capabilityIndex = null; // Generated, not backed by units save(); }
@Override public synchronized boolean removeInstallableUnits(Collection<IInstallableUnit> installableUnits) { boolean changed = false; if (installableUnits != null && !installableUnits.isEmpty()) { changed = true; if (snapshotNeeded) { units = units.clone(); idIndex = null; // Backed by units snapshotNeeded = false; } units.removeAll(installableUnits); capabilityIndex = null; // Generated, not backed by units. } if (changed) save(); return changed; }
@Override public synchronized boolean removeInstallableUnits(Collection<IInstallableUnit> installableUnits) { boolean changed = false; if (installableUnits != null && !installableUnits.isEmpty()) { changed = true; if (snapshotNeeded) { units = units.clone(); idIndex = null; // Backed by units snapshotNeeded = false; } units.removeAll(installableUnits); capabilityIndex = null; // Generated, not backed by units. } if (changed) save(); return changed; }
@Override public synchronized boolean removeInstallableUnits(Collection<IInstallableUnit> installableUnits) { boolean changed = false; if (installableUnits != null && !installableUnits.isEmpty()) { changed = true; if (snapshotNeeded) { units = units.clone(); idIndex = null; // Backed by units snapshotNeeded = false; } units.removeAll(installableUnits); capabilityIndex = null; // Generated, not backed by units. } if (changed) save(); return changed; }