+ synchronized (this) {
+ if (packsByName.containsKey(pack.name())) {
+ Pack oldPack = packsByName.remove(pack.name());
+ packs.remove(oldPack.id());
+ }
+ packs.put(pack.id(), pack);
+ packsByName.put(pack.name(), pack);
+ }
+ }
+
+ //
+ // ITERABLE METHODS
+ //
+
+ @Override
+ public Iterator<Pack> iterator() {
+ return packs().iterator();