private void fillMappings(Section section) {
      // load the terminology
      Section terminology = TerminologyManager.instance().loadTerminology(section.getRepository(),
            section.getType());
      if (terminology != null) {
         // 1st section mapping
         if (section.getMapping() == null) {
            section.setMapping(terminology.getMapping());
         }
         // 2nd property mapping
         for (int i = 0; i < section.propertyCount(); i++) {
            if (section.getProperty(i).getMapping() == null) {
               if (terminology.getProperty(section.getProperty(i).getName()) != null) {
                  section.getProperty(i).setMapping(
                        terminology.getProperty(section.getProperty(i).getName()).getMapping());
               }
            }
         }
      }
      // 3rd recursive call on subsections
      for (int i = 0; i < section.sectionCount(); i++) {
         fillMappings(section.getSection(i));
      }
   }