public synchronized void cleanCategories() {
   int nextId = 1;
   Iterator<PackageCategory> it = packageCategories.iterator();
   while (it.hasNext()) {
     PackageCategory p = it.next();
     if (p.getPackages().isEmpty()) {
       it.remove();
     } else {
       p.niceId = p.getId() != 0 ? nextId++ : 0;
     }
   }
 }
 public synchronized PackageCategory getPackageCategoryByNiceId(int categoryId) {
   for (PackageCategory c : packageCategories) {
     if (c.getNiceId() == categoryId) return c;
   }
   return null;
 }