docs: @Override
      public ExternalEventAggregationConfiguration exportData(String id) {
          final ExternalEventAggregationConfiguration externalData =
                  new ExternalEventAggregationConfiguration();
  
          // Copy interval configs
          final List<ExternalAggregatedIntervalConfig> aggregatedIntervalConfigs =
                  externalData.getAggregatedIntervalConfigs();
          for (final AggregatedIntervalConfig aggregatedIntervalConfig :
                  this.aggregationManagementDao.getAggregatedIntervalConfigs()) {
              final ExternalAggregatedIntervalConfig externalIntervalConfig =
                      new ExternalAggregatedIntervalConfig();
              externalIntervalConfig.setAggregatorType(
                      aggregatedIntervalConfig.getAggregatorType().getName());
  
              final List<ExternalAggregationInterval> extIncludes =
                      externalIntervalConfig.getIncludes();
              for (final AggregationInterval interval : aggregatedIntervalConfig.getIncluded()) {
                  extIncludes.add(convert(interval));
              }
              Collections.sort(extIncludes, EnumNameComparator.INSTANCE);
  
              final List<ExternalAggregationInterval> extExcludes =
                      externalIntervalConfig.getExcludes();
              for (final AggregationInterval interval : aggregatedIntervalConfig.getExcluded()) {
                  extExcludes.add(convert(interval));
              }
              Collections.sort(extExcludes, EnumNameComparator.INSTANCE);
  
              aggregatedIntervalConfigs.add(externalIntervalConfig);
          }
          Collections.sort(
                  aggregatedIntervalConfigs, ExternalAggregatedDimensionConfigComparator.INSTANCE);
  
          // Copy group configs
          final List<ExternalAggregatedGroupConfig> aggregatedGroupConfigs =
                  externalData.getAggregatedGroupConfigs();
          for (final AggregatedGroupConfig aggregatedGroupConfig :
                  this.aggregationManagementDao.getAggregatedGroupConfigs()) {
              final ExternalAggregatedGroupConfig externalGroupConfig =
                      new ExternalAggregatedGroupConfig();
              externalGroupConfig.setAggregatorType(
                      aggregatedGroupConfig.getAggregatorType().getName());
  
              final List<ExternalAggregatedGroupMapping> extIncludes =
                      externalGroupConfig.getIncludes();
              for (final AggregatedGroupMapping Group : aggregatedGroupConfig.getIncluded()) {
                  extIncludes.add(convert(Group));
              }
              Collections.sort(extIncludes, ExternalAggregatedGroupMappingComparator.INSTANCE);
  
              final List<ExternalAggregatedGroupMapping> extExcludes =
                      externalGroupConfig.getExcludes();
              for (final AggregatedGroupMapping Group : aggregatedGroupConfig.getExcluded()) {
                  extExcludes.add(convert(Group));
              }
              Collections.sort(extExcludes, ExternalAggregatedGroupMappingComparator.INSTANCE);
  
              aggregatedGroupConfigs.add(externalGroupConfig);
          }
          Collections.sort(
                  aggregatedGroupConfigs, ExternalAggregatedDimensionConfigComparator.INSTANCE);
  
          // Copy term details
          final List<ExternalTermDetail> externalTermDetails = externalData.getTermDetails();
          for (final AcademicTermDetail academicTermDetail :
                  this.aggregationManagementDao.getAcademicTermDetails()) {
              final ExternalTermDetail externalTermDetail = new ExternalTermDetail();
              externalTermDetail.setName(academicTermDetail.getTermName());
              externalTermDetail.setStart(academicTermDetail.getStart().toGregorianCalendar());
              externalTermDetail.setEnd(academicTermDetail.getEnd().toGregorianCalendar());
              externalTermDetails.add(externalTermDetail);
          }
          Collections.sort(externalTermDetails, ExternalTermDetailComparator.INSTANCE);
  
          // Copy quarter details
          final List<ExternalQuarterDetail> quarterDetails = externalData.getQuarterDetails();
          for (final QuarterDetail quarterDetail :
                  this.aggregationManagementDao.getQuartersDetails()) {
              final ExternalQuarterDetail externalQuarterDetail = new ExternalQuarterDetail();
              externalQuarterDetail.setId(quarterDetail.getQuarterId());
              externalQuarterDetail.setStart(quarterDetail.getStart().toString());
              externalQuarterDetail.setEnd(quarterDetail.getEnd().toString());
              quarterDetails.add(externalQuarterDetail);
          }
          Collections.sort(quarterDetails, ExternalQuarterDetailComparator.INSTANCE);
  
          return externalData;
      }