test_class.declarator: corruptionRiskDashboardIndicatorsStatsController
test_class.modifier: @Autowired
      private
test_class.original_string: @Autowired
      private CorruptionRiskDashboardIndicatorsStatsController corruptionRiskDashboardIndicatorsStatsController;
test_class.type: CorruptionRiskDashboardIndicatorsStatsController
test_class.var_name: corruptionRiskDashboardIndicatorsStatsController
test_class.declarator: releaseFlaggingService
test_class.modifier: @Autowired
      private
test_class.original_string: @Autowired
      private ReleaseFlaggingService releaseFlaggingService;
test_class.type: ReleaseFlaggingService
test_class.var_name: releaseFlaggingService
test_class.declarator: releaseRepository
test_class.modifier: @Autowired
      private
test_class.original_string: @Autowired
      private FlaggedReleaseRepository releaseRepository;
test_class.type: FlaggedReleaseRepository
test_class.var_name: releaseRepository
test_class.declarator: objectMapper
test_class.modifier: @Autowired
      private
test_class.original_string: @Autowired
      private ObjectMapper objectMapper;
test_class.type: ObjectMapper
test_class.var_name: objectMapper
test_class.file: web/src/test/java/org/devgateway/ocds/web/rest/controller/CorruptionRiskDashboardIndicatorsStatsControllerTest.java
test_class.identifier: CorruptionRiskDashboardIndicatorsStatsControllerTest
test_class.superclass: extends AbstractEndPointControllerTest
test_case.body: @Test
      public void totalFlagsTest() throws Exception {
  
          final List<Document> result = corruptionRiskDashboardIndicatorsStatsController.totalFlags(new
                  YearFilterPagingRequest());
  
          Assert.assertEquals(2,
                  result.get(0).get(CorruptionRiskDashboardIndicatorsStatsController.Keys.FLAGGED_COUNT));
      }
test_case.class_method_signature: CorruptionRiskDashboardIndicatorsStatsControllerTest.totalFlagsTest()
test_case.full_signature: @Test public void totalFlagsTest()
test_case.identifier: totalFlagsTest
test_case.invocations: totalFlags assertEquals get get
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void totalFlagsTest()
focal_class.declarator: ELIGIBLE_STATS = "eligibleStats"
focal_class.modifier: private static final
focal_class.original_string: private static final String ELIGIBLE_STATS = "eligibleStats";
focal_class.type: String
focal_class.var_name: ELIGIBLE_STATS
focal_class.declarator: FLAGGED_STATS = "flaggedStats"
focal_class.modifier: private static final
focal_class.original_string: private static final String FLAGGED_STATS = "flaggedStats";
focal_class.type: String
focal_class.var_name: FLAGGED_STATS
focal_class.file: web/src/main/java/org/devgateway/ocds/web/rest/controller/CorruptionRiskDashboardIndicatorsStatsController.java
focal_class.identifier: CorruptionRiskDashboardIndicatorsStatsController
focal_class.class_method_signature: CorruptionRiskDashboardIndicatorsStatsController.totalFlaggedIndicatorsByIndicatorType(
              @ModelAttribute @Valid final YearFilterPagingRequest filter)
focal_class.full_signature: @ApiOperation(value = "Counts the indicators flagged, and groups them by indicator type. " + "An indicator that has two types it will be counted twice, once in each group.") @RequestMapping(value = "/api/totalFlaggedIndicatorsByIndicatorType", method = {RequestMethod.POST, RequestMethod.GET}, produces = "application/json") public List<Document> totalFlaggedIndicatorsByIndicatorType(
              @ModelAttribute @Valid final YearFilterPagingRequest filter)
focal_class.identifier: totalFlaggedIndicatorsByIndicatorType
focal_class.modifiers: @ApiOperation(value = "Counts the indicators flagged, and groups them by indicator type. " + "An indicator that has two types it will be counted twice, once in each group.") @RequestMapping(value = "/api/totalFlaggedIndicatorsByIndicatorType", method = {RequestMethod.POST, RequestMethod.GET}, produces = "application/json") public
focal_class.parameters: (
              @ModelAttribute @Valid final YearFilterPagingRequest filter)
focal_class.return: List<Document>
focal_class.signature: List<Document> totalFlaggedIndicatorsByIndicatorType(
              @ModelAttribute @Valid final YearFilterPagingRequest filter)
focal_class.class_method_signature: CorruptionRiskDashboardIndicatorsStatsController.totalEligibleIndicatorsByIndicatorType(
              @ModelAttribute @Valid final YearFilterPagingRequest filter)
focal_class.full_signature: @ApiOperation(value = "Counts the indicators eligible, and groups them by indicator type. " + "An indicator that has two types it will be counted twice, once in each group.") @RequestMapping(value = "/api/totalEligibleIndicatorsByIndicatorType", method = {RequestMethod.POST, RequestMethod.GET}, produces = "application/json") public List<Document> totalEligibleIndicatorsByIndicatorType(
              @ModelAttribute @Valid final YearFilterPagingRequest filter)
focal_class.identifier: totalEligibleIndicatorsByIndicatorType
focal_class.modifiers: @ApiOperation(value = "Counts the indicators eligible, and groups them by indicator type. " + "An indicator that has two types it will be counted twice, once in each group.") @RequestMapping(value = "/api/totalEligibleIndicatorsByIndicatorType", method = {RequestMethod.POST, RequestMethod.GET}, produces = "application/json") public
focal_class.parameters: (
              @ModelAttribute @Valid final YearFilterPagingRequest filter)
focal_class.return: List<Document>
focal_class.signature: List<Document> totalEligibleIndicatorsByIndicatorType(
              @ModelAttribute @Valid final YearFilterPagingRequest filter)
focal_class.class_method_signature: CorruptionRiskDashboardIndicatorsStatsController.totalFlags(final YearFilterPagingRequest filter)
focal_class.full_signature: @ApiOperation(value = "Counts the indicators that are flagged, across all releases. If one " + "indicator has multiple types is only counted once, so this is different from flaggedStats and " + "cannot be reproduced by just summing up all types in flaggedStats!") @RequestMapping(value = "/api/totalFlags", method = {RequestMethod.POST, RequestMethod.GET}, produces = "application/json") public List<Document> totalFlags(final YearFilterPagingRequest filter)
focal_class.identifier: totalFlags
focal_class.modifiers: @ApiOperation(value = "Counts the indicators that are flagged, across all releases. If one " + "indicator has multiple types is only counted once, so this is different from flaggedStats and " + "cannot be reproduced by just summing up all types in flaggedStats!") @RequestMapping(value = "/api/totalFlags", method = {RequestMethod.POST, RequestMethod.GET}, produces = "application/json") public
focal_class.parameters: (final YearFilterPagingRequest filter)
focal_class.return: List<Document>
focal_class.signature: List<Document> totalFlags(final YearFilterPagingRequest filter)
focal_class.class_method_signature: CorruptionRiskDashboardIndicatorsStatsController.totalIndicatorsByIndicatorType(String statsProperty,
                                                            final YearFilterPagingRequest filter)
focal_class.full_signature: private List<Document> totalIndicatorsByIndicatorType(String statsProperty,
                                                            final YearFilterPagingRequest filter)
focal_class.identifier: totalIndicatorsByIndicatorType
focal_class.modifiers: private
focal_class.parameters: (String statsProperty,
                                                            final YearFilterPagingRequest filter)
focal_class.return: List<Document>
focal_class.signature: List<Document> totalIndicatorsByIndicatorType(String statsProperty,
                                                            final YearFilterPagingRequest filter)
focal_class.class_method_signature: CorruptionRiskDashboardIndicatorsStatsController.totalFlaggedIndicatorsByIndicatorTypeByYear(
              @ModelAttribute @Valid final YearFilterPagingRequest filter)
focal_class.full_signature: @ApiOperation(value = "Counts the indicators flagged, and groups them by indicator type and by year/month. " + "An indicator that has two types it will be counted twice, once in each group.") @RequestMapping(value = "/api/totalFlaggedIndicatorsByIndicatorTypeByYear", method = {RequestMethod.POST, RequestMethod.GET}, produces = "application/json") public List<Document> totalFlaggedIndicatorsByIndicatorTypeByYear(
              @ModelAttribute @Valid final YearFilterPagingRequest filter)
focal_class.identifier: totalFlaggedIndicatorsByIndicatorTypeByYear
focal_class.modifiers: @ApiOperation(value = "Counts the indicators flagged, and groups them by indicator type and by year/month. " + "An indicator that has two types it will be counted twice, once in each group.") @RequestMapping(value = "/api/totalFlaggedIndicatorsByIndicatorTypeByYear", method = {RequestMethod.POST, RequestMethod.GET}, produces = "application/json") public
focal_class.parameters: (
              @ModelAttribute @Valid final YearFilterPagingRequest filter)
focal_class.return: List<Document>
focal_class.signature: List<Document> totalFlaggedIndicatorsByIndicatorTypeByYear(
              @ModelAttribute @Valid final YearFilterPagingRequest filter)
focal_class.class_method_signature: CorruptionRiskDashboardIndicatorsStatsController.totalEligibleIndicatorsByIndicatorTypeByYear(
              @ModelAttribute @Valid final YearFilterPagingRequest filter)
focal_class.full_signature: @ApiOperation(value = "Counts the indicators eligible, and groups them by indicator type and by year/month. " + "An indicator that has two types it will be counted twice, once in each group.") @RequestMapping(value = "/api/totalEligibleIndicatorsByIndicatorTypeByYear", method = {RequestMethod.POST, RequestMethod.GET}, produces = "application/json") public List<Document> totalEligibleIndicatorsByIndicatorTypeByYear(
              @ModelAttribute @Valid final YearFilterPagingRequest filter)
focal_class.identifier: totalEligibleIndicatorsByIndicatorTypeByYear
focal_class.modifiers: @ApiOperation(value = "Counts the indicators eligible, and groups them by indicator type and by year/month. " + "An indicator that has two types it will be counted twice, once in each group.") @RequestMapping(value = "/api/totalEligibleIndicatorsByIndicatorTypeByYear", method = {RequestMethod.POST, RequestMethod.GET}, produces = "application/json") public
focal_class.parameters: (
              @ModelAttribute @Valid final YearFilterPagingRequest filter)
focal_class.return: List<Document>
focal_class.signature: List<Document> totalEligibleIndicatorsByIndicatorTypeByYear(
              @ModelAttribute @Valid final YearFilterPagingRequest filter)
focal_class.class_method_signature: CorruptionRiskDashboardIndicatorsStatsController.totalIndicatorsByIndicatorTypeByYear(String statsProperty,
                                                                  final YearFilterPagingRequest filter)
focal_class.full_signature: private List<Document> totalIndicatorsByIndicatorTypeByYear(String statsProperty,
                                                                  final YearFilterPagingRequest filter)
focal_class.identifier: totalIndicatorsByIndicatorTypeByYear
focal_class.modifiers: private
focal_class.parameters: (String statsProperty,
                                                                  final YearFilterPagingRequest filter)
focal_class.return: List<Document>
focal_class.signature: List<Document> totalIndicatorsByIndicatorTypeByYear(String statsProperty,
                                                                  final YearFilterPagingRequest filter)
focal_class.class_method_signature: CorruptionRiskDashboardIndicatorsStatsController.totalFlaggedProjectsByIndicatorTypeByYear(
              @ModelAttribute @Valid final YearFilterPagingRequest filter)
focal_class.full_signature: @ApiOperation(value = "Counts the projects and the indicators flagged, grouped by indicator type. " + "The 'count' represents the number of indicators flagged, the 'projectCount' represents the number" + " of projects flagged.") @RequestMapping(value = "/api/totalFlaggedProjectsByIndicatorTypeByYear", method = {RequestMethod.POST, RequestMethod.GET}, produces = "application/json") public List<Document> totalFlaggedProjectsByIndicatorTypeByYear(
              @ModelAttribute @Valid final YearFilterPagingRequest filter)
focal_class.identifier: totalFlaggedProjectsByIndicatorTypeByYear
focal_class.modifiers: @ApiOperation(value = "Counts the projects and the indicators flagged, grouped by indicator type. " + "The 'count' represents the number of indicators flagged, the 'projectCount' represents the number" + " of projects flagged.") @RequestMapping(value = "/api/totalFlaggedProjectsByIndicatorTypeByYear", method = {RequestMethod.POST, RequestMethod.GET}, produces = "application/json") public
focal_class.parameters: (
              @ModelAttribute @Valid final YearFilterPagingRequest filter)
focal_class.return: List<Document>
focal_class.signature: List<Document> totalFlaggedProjectsByIndicatorTypeByYear(
              @ModelAttribute @Valid final YearFilterPagingRequest filter)
focal_class.class_method_signature: CorruptionRiskDashboardIndicatorsStatsController.totalEligibleProjectsByIndicatorTypeByYear(
              @ModelAttribute @Valid final YearFilterPagingRequest filter)
focal_class.full_signature: @ApiOperation(value = "Counts the projects and the indicators eligible, grouped by indicator type. " + "The 'count' represents the number of indicators eligible, the 'projectCount' represents the number" + " of projects eligible.") @RequestMapping(value = "/api/totalEligibleProjectsByIndicatorTypeByYear", method = {RequestMethod.POST, RequestMethod.GET}, produces = "application/json") public List<Document> totalEligibleProjectsByIndicatorTypeByYear(
              @ModelAttribute @Valid final YearFilterPagingRequest filter)
focal_class.identifier: totalEligibleProjectsByIndicatorTypeByYear
focal_class.modifiers: @ApiOperation(value = "Counts the projects and the indicators eligible, grouped by indicator type. " + "The 'count' represents the number of indicators eligible, the 'projectCount' represents the number" + " of projects eligible.") @RequestMapping(value = "/api/totalEligibleProjectsByIndicatorTypeByYear", method = {RequestMethod.POST, RequestMethod.GET}, produces = "application/json") public
focal_class.parameters: (
              @ModelAttribute @Valid final YearFilterPagingRequest filter)
focal_class.return: List<Document>
focal_class.signature: List<Document> totalEligibleProjectsByIndicatorTypeByYear(
              @ModelAttribute @Valid final YearFilterPagingRequest filter)
focal_class.class_method_signature: CorruptionRiskDashboardIndicatorsStatsController.totalProjectsByIndicatorTypeByYear(String statsProperty,
                                                                final YearFilterPagingRequest filter)
focal_class.full_signature: private List<Document> totalProjectsByIndicatorTypeByYear(String statsProperty,
                                                                final YearFilterPagingRequest filter)
focal_class.identifier: totalProjectsByIndicatorTypeByYear
focal_class.modifiers: private
focal_class.parameters: (String statsProperty,
                                                                final YearFilterPagingRequest filter)
focal_class.return: List<Document>
focal_class.signature: List<Document> totalProjectsByIndicatorTypeByYear(String statsProperty,
                                                                final YearFilterPagingRequest filter)
focal_class.class_method_signature: CorruptionRiskDashboardIndicatorsStatsController.totalProjectsByYear(final YearFilterPagingRequest filter)
focal_class.full_signature: @ApiOperation(value = "Count total projects by year/month.") @RequestMapping(value = "/api/totalProjectsByYear", method = {RequestMethod.POST, RequestMethod.GET}, produces = "application/json") public List<Document> totalProjectsByYear(final YearFilterPagingRequest filter)
focal_class.identifier: totalProjectsByYear
focal_class.modifiers: @ApiOperation(value = "Count total projects by year/month.") @RequestMapping(value = "/api/totalProjectsByYear", method = {RequestMethod.POST, RequestMethod.GET}, produces = "application/json") public
focal_class.parameters: (final YearFilterPagingRequest filter)
focal_class.return: List<Document>
focal_class.signature: List<Document> totalProjectsByYear(final YearFilterPagingRequest filter)
focal_class.class_method_signature: CorruptionRiskDashboardIndicatorsStatsController.findByYearAndTypeAndMonth(List<Document> source, Integer year, String type, Integer month)
focal_class.full_signature: private List<Document> findByYearAndTypeAndMonth(List<Document> source, Integer year, String type, Integer month)
focal_class.identifier: findByYearAndTypeAndMonth
focal_class.modifiers: private
focal_class.parameters: (List<Document> source, Integer year, String type, Integer month)
focal_class.return: List<Document>
focal_class.signature: List<Document> findByYearAndTypeAndMonth(List<Document> source, Integer year, String type, Integer month)
focal_class.class_method_signature: CorruptionRiskDashboardIndicatorsStatsController.percentTotalProjectsFlaggedByYear(final YearFilterPagingRequest filter)
focal_class.full_signature: @ApiOperation(value = "Percent of total projects flagged (denominator is total projects)") @RequestMapping(value = "/api/percentTotalProjectsFlaggedByYear", method = {RequestMethod.POST, RequestMethod.GET}, produces = "application/json") public List<Document> percentTotalProjectsFlaggedByYear(final YearFilterPagingRequest filter)
focal_class.identifier: percentTotalProjectsFlaggedByYear
focal_class.modifiers: @ApiOperation(value = "Percent of total projects flagged (denominator is total projects)") @RequestMapping(value = "/api/percentTotalProjectsFlaggedByYear", method = {RequestMethod.POST, RequestMethod.GET}, produces = "application/json") public
focal_class.parameters: (final YearFilterPagingRequest filter)
focal_class.return: List<Document>
focal_class.signature: List<Document> percentTotalProjectsFlaggedByYear(final YearFilterPagingRequest filter)
focal_class.class_method_signature: CorruptionRiskDashboardIndicatorsStatsController.percentTotalProjectsEligibleByYear(final YearFilterPagingRequest filter)
focal_class.full_signature: @ApiOperation(value = "Percent of total projects eligible (denominator is total projects)") @RequestMapping(value = "/api/percentTotalProjectsEligibleByYear", method = {RequestMethod.POST, RequestMethod.GET}, produces = "application/json") public List<Document> percentTotalProjectsEligibleByYear(final YearFilterPagingRequest filter)
focal_class.identifier: percentTotalProjectsEligibleByYear
focal_class.modifiers: @ApiOperation(value = "Percent of total projects eligible (denominator is total projects)") @RequestMapping(value = "/api/percentTotalProjectsEligibleByYear", method = {RequestMethod.POST, RequestMethod.GET}, produces = "application/json") public
focal_class.parameters: (final YearFilterPagingRequest filter)
focal_class.return: List<Document>
focal_class.signature: List<Document> percentTotalProjectsEligibleByYear(final YearFilterPagingRequest filter)
focal_class.class_method_signature: CorruptionRiskDashboardIndicatorsStatsController.percentOfEligibleProjectsFlaggedByYear(final YearFilterPagingRequest filter)
focal_class.full_signature: @ApiOperation(value = "Percent of eligible projects flagged (denominator is number of eligible projects)") @RequestMapping(value = "/api/percentOfEligibleProjectsFlaggedByYear", method = {RequestMethod.POST, RequestMethod.GET}, produces = "application/json") public List<Document> percentOfEligibleProjectsFlaggedByYear(final YearFilterPagingRequest filter)
focal_class.identifier: percentOfEligibleProjectsFlaggedByYear
focal_class.modifiers: @ApiOperation(value = "Percent of eligible projects flagged (denominator is number of eligible projects)") @RequestMapping(value = "/api/percentOfEligibleProjectsFlaggedByYear", method = {RequestMethod.POST, RequestMethod.GET}, produces = "application/json") public
focal_class.parameters: (final YearFilterPagingRequest filter)
focal_class.return: List<Document>
focal_class.signature: List<Document> percentOfEligibleProjectsFlaggedByYear(final YearFilterPagingRequest filter)
focal_class.superclass: extends GenericOCDSController
focal_method.body: @ApiOperation(value = "Counts the indicators that are flagged, across all releases. If one "
              + "indicator has multiple types is only counted once, so this is different from flaggedStats and "
              + "cannot be reproduced by just summing up all types in flaggedStats!")
      @RequestMapping(value = "/api/totalFlags", method = {RequestMethod.POST, RequestMethod.GET},
              produces = "application/json")
      public List<Document> totalFlags(final YearFilterPagingRequest filter) {
  
          Aggregation agg = newAggregation(
                  match(getYearDefaultFilterCriteria(filter,
                                  MongoConstants.FieldNames.TENDER_PERIOD_START_DATE)),
                  project().and(FLAGS_TOTAL_FLAGGED).as("totalFlagged"),
                  group().sum("totalFlagged").as(Keys.FLAGGED_COUNT),
                  project(Keys.FLAGGED_COUNT).andExclude(Fields.UNDERSCORE_ID)
          );
  
          return releaseAgg(agg);
      }
focal_method.class_method_signature: CorruptionRiskDashboardIndicatorsStatsController.totalFlags(final YearFilterPagingRequest filter)
focal_method.full_signature: @ApiOperation(value = "Counts the indicators that are flagged, across all releases. If one " + "indicator has multiple types is only counted once, so this is different from flaggedStats and " + "cannot be reproduced by just summing up all types in flaggedStats!") @RequestMapping(value = "/api/totalFlags", method = {RequestMethod.POST, RequestMethod.GET}, produces = "application/json") public List<Document> totalFlags(final YearFilterPagingRequest filter)
focal_method.identifier: totalFlags
focal_method.invocations: newAggregation match getYearDefaultFilterCriteria as and project as sum group andExclude project releaseAgg
focal_method.modifiers: @ApiOperation(value = "Counts the indicators that are flagged, across all releases. If one " + "indicator has multiple types is only counted once, so this is different from flaggedStats and " + "cannot be reproduced by just summing up all types in flaggedStats!") @RequestMapping(value = "/api/totalFlags", method = {RequestMethod.POST, RequestMethod.GET}, produces = "application/json") public
focal_method.parameters: (final YearFilterPagingRequest filter)
focal_method.return: List<Document>
focal_method.signature: List<Document> totalFlags(final YearFilterPagingRequest filter)