protected Map<String, Map<String, String>> getPresetsByCat(FlavorDescriptor flavor) {
   String flavorName = flavor.getName();
   List<FlavorPresets> presets = computePresets(flavor, new ArrayList<String>());
   Map<String, Map<String, String>> presetsByCat = new HashMap<String, Map<String, String>>();
   if (presets != null) {
     for (FlavorPresets myPreset : presets) {
       String content = myPreset.getContent();
       if (content == null) {
         log.error(
             "Null content for preset with source '"
                 + myPreset.getSrc()
                 + "' in flavor '"
                 + flavorName
                 + "'");
       } else {
         String cat = myPreset.getCategory();
         Map<String, String> allEntries;
         if (presetsByCat.containsKey(cat)) {
           allEntries = presetsByCat.get(cat);
         } else {
           allEntries = new HashMap<String, String>();
         }
         try {
           Map<String, String> newEntries =
               PaletteParser.parse(content.getBytes(), myPreset.getSrc());
           if (newEntries != null) {
             allEntries.putAll(newEntries);
           }
           if (allEntries.isEmpty()) {
             presetsByCat.remove(cat);
           } else {
             presetsByCat.put(cat, allEntries);
           }
         } catch (PaletteParseException e) {
           log.error(
               String.format(
                   "Could not parse palette for " + "preset with source '%s' in flavor '%s'",
                   myPreset.getSrc(), flavorName),
               e);
         }
       }
     }
   }
   return presetsByCat;
 }