private void setAbilityGroups(Element generalElement, GenericCharacterTemplate characterTemplate)
     throws PersistenceException {
   Element abilityGroupElement = generalElement.element(TAG_ABILITY_GROUPS);
   if (abilityGroupElement == null) {
     return;
   }
   IXmlTemplateRegistry<GenericGroupedTraitTypeProvider> registry =
       registryCollection.getTraitGroupTemplateRegistry();
   TraitTypeGroupTemplateParser parser =
       new TraitTypeGroupTemplateParser(registry, AllAbilityTraitTypeGroup.getInstance());
   GenericGroupedTraitTypeProvider abilityGroups = parser.parseTemplate(abilityGroupElement);
   characterTemplate.setAbilityGroups(abilityGroups.getTraitTypeGroups());
 }
 private void setYoziGroups(Element generalElement, GenericCharacterTemplate characterTemplate)
     throws PersistenceException {
   Element yoziGroupElement = generalElement.element(TAG_YOZI_GROUPS);
   if (yoziGroupElement == null) {
     GenericGroupedTraitTypeProvider provider =
         new GenericGroupedTraitTypeProvider(AllYoziTraitTypeGroup.getInstance());
     List<String> emptyList = new ArrayList<String>();
     for (YoziType yozi : YoziType.values())
       provider.addGroupedAbilityType(yozi.getId(), yozi.getId(), null, emptyList);
     characterTemplate.setYoziGroups(provider.getTraitTypeGroups());
     return;
   }
   IXmlTemplateRegistry<GenericGroupedTraitTypeProvider> registry =
       registryCollection.getTraitGroupTemplateRegistry();
   TraitTypeGroupTemplateParser parser =
       new TraitTypeGroupTemplateParser(registry, AllYoziTraitTypeGroup.getInstance());
   GenericGroupedTraitTypeProvider yoziGroups = parser.parseTemplate(yoziGroupElement);
   characterTemplate.setYoziGroups(yoziGroups.getTraitTypeGroups());
 }