@Ignore @Test public void testExecuteAgain() { File tenantDir = Mockito.mock(File.class); DateTime time = new DateTime(); extractor.execute("Midgar", tenantDir, time); Mockito.verify(mockExtractMap, Mockito.times(1)).archiveFiles(); Mockito.verify(mockExtractMap, Mockito.times(1)).buildManifestFiles(time); Mockito.verify(mockExtractMap, Mockito.times(1)).closeFiles(); }
public void execute(String tenant, File tenantDirectory, DateTime startTime) { TenantContext.setTenantId(tenant); this.tenantDirectory = tenantDirectory; this.startTime = startTime; audit(securityEventUtil.createSecurityEvent(this.getClass().getName(), "Top-level extract initiated", LogLevelType.TYPE_INFO, BEMessageCode.BE_SE_CODE_0008)); if (factory == null) { factory = new ExtractorFactory(); } if (edOrgToExtractFileMap == null) { edOrgToExtractFileMap = new ExtractFileMap(buildEdOrgToExtractFile()); } StudentExtractor student = factory.buildStudentExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); student.extractEntities(null); EntityDatedExtract attendanceExtractor = factory.buildAttendanceExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); attendanceExtractor.extractEntities(student.getStudentDatedCache()); EntityDatedExtract studentSchoolAssociation = factory.buildStudentSchoolAssociationExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); studentSchoolAssociation.extractEntities(student.getStudentDatedCache()); EntityDatedExtract studentAssessmentExtractor = factory.buildStudentAssessmentExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); studentAssessmentExtractor.extractEntities(student.getStudentDatedCache()); StudentGradebookEntryExtractor studentGradebookExtractor = factory.buildStudentGradebookEntryExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); studentGradebookExtractor.extractEntities(student.getStudentDatedCache()); EntityDatedExtract discipline = factory.buildDisciplineExtractor(entityExtractor, edOrgToExtractFileMap, repository, student.getStudentDatedCache()); discipline.extractEntities(student.getDiDateCache()); YearlyTranscriptExtractor yearlyTranscript = factory.buildYearlyTranscriptExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); yearlyTranscript.extractEntities(student.getStudentDatedCache()); EntityToEdOrgDateCache studentAcademicRecordDateCache = yearlyTranscript.getStudentAcademicRecordDateCache(); EntityDatedExtract courseTranscriptExtractor = factory.buildCourseTranscriptExtractor(entityExtractor, edOrgToExtractFileMap, repository, student.getStudentDatedCache()); courseTranscriptExtractor.extractEntities(studentAcademicRecordDateCache); EntityExtract genericExtractor = factory.buildParentExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); genericExtractor.extractEntities(student.getParentCache()); StaffEdorgAssignmentExtractor seoaExtractor = factory.buildStaffAssociationExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); seoaExtractor.extractEntities(null); EntityDatedExtract staffExtractor = factory.buildStaffExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); staffExtractor.extractEntities(seoaExtractor.getStaffDatedCache()); EntityDatedExtract teacherSchoolAssociationExtractor = factory.buildTeacherSchoolAssociationExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); teacherSchoolAssociationExtractor.extractEntities(seoaExtractor.getStaffDatedCache()); EntityDatedExtract staffProgramExtractor = factory.buildStaffProgramAssociationExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); staffProgramExtractor.extractEntities(seoaExtractor.getStaffDatedCache()); EntityDatedExtract staffCohortExtractor = factory.buildStaffCohortAssociationExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); staffCohortExtractor.extractEntities(seoaExtractor.getStaffDatedCache()); SectionEmbeddedDocsExtractor sectionExtractor = factory.buildSectionExtractor(entityExtractor, edOrgToExtractFileMap, repository, student.getStudentDatedCache(), helper, seoaExtractor.getStaffDatedCache()); sectionExtractor.extractEntities(studentGradebookExtractor.getGradebookEntryCache()); EntityDatedExtract studentCompetencyExtractor = factory.buildStudentCompetencyExtractor(entityExtractor, edOrgToExtractFileMap, repository); studentCompetencyExtractor.extractEntities(sectionExtractor.getStudentSectionAssociationDateCache()); edOrgToExtractFileMap.closeFiles(); edOrgToExtractFileMap.buildManifestFiles(startTime); edOrgToExtractFileMap.archiveFiles(); updateBulkExtractDb(tenant, startTime); LOG.info("Finished top-level extract in: {} seconds", (new DateTime().getMillis() - this.startTime.getMillis()) / 1000); audit(securityEventUtil.createSecurityEvent(this.getClass().getName(), "Marks the end of top-level extract", LogLevelType.TYPE_INFO, BEMessageCode.BE_SE_CODE_0009)); }
EdOrgExtractor { public void execute(String tenant, File tenantDirectory, DateTime startTime) { TenantContext.setTenantId(tenant); this.tenantDirectory = tenantDirectory; this.startTime = startTime; audit(securityEventUtil.createSecurityEvent(this.getClass().getName(), "Top-level extract initiated", LogLevelType.TYPE_INFO, BEMessageCode.BE_SE_CODE_0008)); if (factory == null) { factory = new ExtractorFactory(); } if (edOrgToExtractFileMap == null) { edOrgToExtractFileMap = new ExtractFileMap(buildEdOrgToExtractFile()); } StudentExtractor student = factory.buildStudentExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); student.extractEntities(null); EntityDatedExtract attendanceExtractor = factory.buildAttendanceExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); attendanceExtractor.extractEntities(student.getStudentDatedCache()); EntityDatedExtract studentSchoolAssociation = factory.buildStudentSchoolAssociationExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); studentSchoolAssociation.extractEntities(student.getStudentDatedCache()); EntityDatedExtract studentAssessmentExtractor = factory.buildStudentAssessmentExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); studentAssessmentExtractor.extractEntities(student.getStudentDatedCache()); StudentGradebookEntryExtractor studentGradebookExtractor = factory.buildStudentGradebookEntryExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); studentGradebookExtractor.extractEntities(student.getStudentDatedCache()); EntityDatedExtract discipline = factory.buildDisciplineExtractor(entityExtractor, edOrgToExtractFileMap, repository, student.getStudentDatedCache()); discipline.extractEntities(student.getDiDateCache()); YearlyTranscriptExtractor yearlyTranscript = factory.buildYearlyTranscriptExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); yearlyTranscript.extractEntities(student.getStudentDatedCache()); EntityToEdOrgDateCache studentAcademicRecordDateCache = yearlyTranscript.getStudentAcademicRecordDateCache(); EntityDatedExtract courseTranscriptExtractor = factory.buildCourseTranscriptExtractor(entityExtractor, edOrgToExtractFileMap, repository, student.getStudentDatedCache()); courseTranscriptExtractor.extractEntities(studentAcademicRecordDateCache); EntityExtract genericExtractor = factory.buildParentExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); genericExtractor.extractEntities(student.getParentCache()); StaffEdorgAssignmentExtractor seoaExtractor = factory.buildStaffAssociationExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); seoaExtractor.extractEntities(null); EntityDatedExtract staffExtractor = factory.buildStaffExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); staffExtractor.extractEntities(seoaExtractor.getStaffDatedCache()); EntityDatedExtract teacherSchoolAssociationExtractor = factory.buildTeacherSchoolAssociationExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); teacherSchoolAssociationExtractor.extractEntities(seoaExtractor.getStaffDatedCache()); EntityDatedExtract staffProgramExtractor = factory.buildStaffProgramAssociationExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); staffProgramExtractor.extractEntities(seoaExtractor.getStaffDatedCache()); EntityDatedExtract staffCohortExtractor = factory.buildStaffCohortAssociationExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); staffCohortExtractor.extractEntities(seoaExtractor.getStaffDatedCache()); SectionEmbeddedDocsExtractor sectionExtractor = factory.buildSectionExtractor(entityExtractor, edOrgToExtractFileMap, repository, student.getStudentDatedCache(), helper, seoaExtractor.getStaffDatedCache()); sectionExtractor.extractEntities(studentGradebookExtractor.getGradebookEntryCache()); EntityDatedExtract studentCompetencyExtractor = factory.buildStudentCompetencyExtractor(entityExtractor, edOrgToExtractFileMap, repository); studentCompetencyExtractor.extractEntities(sectionExtractor.getStudentSectionAssociationDateCache()); edOrgToExtractFileMap.closeFiles(); edOrgToExtractFileMap.buildManifestFiles(startTime); edOrgToExtractFileMap.archiveFiles(); updateBulkExtractDb(tenant, startTime); LOG.info("Finished top-level extract in: {} seconds", (new DateTime().getMillis() - this.startTime.getMillis()) / 1000); audit(securityEventUtil.createSecurityEvent(this.getClass().getName(), "Marks the end of top-level extract", LogLevelType.TYPE_INFO, BEMessageCode.BE_SE_CODE_0009)); } }
EdOrgExtractor { public void execute(String tenant, File tenantDirectory, DateTime startTime) { TenantContext.setTenantId(tenant); this.tenantDirectory = tenantDirectory; this.startTime = startTime; audit(securityEventUtil.createSecurityEvent(this.getClass().getName(), "Top-level extract initiated", LogLevelType.TYPE_INFO, BEMessageCode.BE_SE_CODE_0008)); if (factory == null) { factory = new ExtractorFactory(); } if (edOrgToExtractFileMap == null) { edOrgToExtractFileMap = new ExtractFileMap(buildEdOrgToExtractFile()); } StudentExtractor student = factory.buildStudentExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); student.extractEntities(null); EntityDatedExtract attendanceExtractor = factory.buildAttendanceExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); attendanceExtractor.extractEntities(student.getStudentDatedCache()); EntityDatedExtract studentSchoolAssociation = factory.buildStudentSchoolAssociationExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); studentSchoolAssociation.extractEntities(student.getStudentDatedCache()); EntityDatedExtract studentAssessmentExtractor = factory.buildStudentAssessmentExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); studentAssessmentExtractor.extractEntities(student.getStudentDatedCache()); StudentGradebookEntryExtractor studentGradebookExtractor = factory.buildStudentGradebookEntryExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); studentGradebookExtractor.extractEntities(student.getStudentDatedCache()); EntityDatedExtract discipline = factory.buildDisciplineExtractor(entityExtractor, edOrgToExtractFileMap, repository, student.getStudentDatedCache()); discipline.extractEntities(student.getDiDateCache()); YearlyTranscriptExtractor yearlyTranscript = factory.buildYearlyTranscriptExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); yearlyTranscript.extractEntities(student.getStudentDatedCache()); EntityToEdOrgDateCache studentAcademicRecordDateCache = yearlyTranscript.getStudentAcademicRecordDateCache(); EntityDatedExtract courseTranscriptExtractor = factory.buildCourseTranscriptExtractor(entityExtractor, edOrgToExtractFileMap, repository, student.getStudentDatedCache()); courseTranscriptExtractor.extractEntities(studentAcademicRecordDateCache); EntityExtract genericExtractor = factory.buildParentExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); genericExtractor.extractEntities(student.getParentCache()); StaffEdorgAssignmentExtractor seoaExtractor = factory.buildStaffAssociationExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); seoaExtractor.extractEntities(null); EntityDatedExtract staffExtractor = factory.buildStaffExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); staffExtractor.extractEntities(seoaExtractor.getStaffDatedCache()); EntityDatedExtract teacherSchoolAssociationExtractor = factory.buildTeacherSchoolAssociationExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); teacherSchoolAssociationExtractor.extractEntities(seoaExtractor.getStaffDatedCache()); EntityDatedExtract staffProgramExtractor = factory.buildStaffProgramAssociationExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); staffProgramExtractor.extractEntities(seoaExtractor.getStaffDatedCache()); EntityDatedExtract staffCohortExtractor = factory.buildStaffCohortAssociationExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); staffCohortExtractor.extractEntities(seoaExtractor.getStaffDatedCache()); SectionEmbeddedDocsExtractor sectionExtractor = factory.buildSectionExtractor(entityExtractor, edOrgToExtractFileMap, repository, student.getStudentDatedCache(), helper, seoaExtractor.getStaffDatedCache()); sectionExtractor.extractEntities(studentGradebookExtractor.getGradebookEntryCache()); EntityDatedExtract studentCompetencyExtractor = factory.buildStudentCompetencyExtractor(entityExtractor, edOrgToExtractFileMap, repository); studentCompetencyExtractor.extractEntities(sectionExtractor.getStudentSectionAssociationDateCache()); edOrgToExtractFileMap.closeFiles(); edOrgToExtractFileMap.buildManifestFiles(startTime); edOrgToExtractFileMap.archiveFiles(); updateBulkExtractDb(tenant, startTime); LOG.info("Finished top-level extract in: {} seconds", (new DateTime().getMillis() - this.startTime.getMillis()) / 1000); audit(securityEventUtil.createSecurityEvent(this.getClass().getName(), "Marks the end of top-level extract", LogLevelType.TYPE_INFO, BEMessageCode.BE_SE_CODE_0009)); }  }
EdOrgExtractor { public void execute(String tenant, File tenantDirectory, DateTime startTime) { TenantContext.setTenantId(tenant); this.tenantDirectory = tenantDirectory; this.startTime = startTime; audit(securityEventUtil.createSecurityEvent(this.getClass().getName(), "Top-level extract initiated", LogLevelType.TYPE_INFO, BEMessageCode.BE_SE_CODE_0008)); if (factory == null) { factory = new ExtractorFactory(); } if (edOrgToExtractFileMap == null) { edOrgToExtractFileMap = new ExtractFileMap(buildEdOrgToExtractFile()); } StudentExtractor student = factory.buildStudentExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); student.extractEntities(null); EntityDatedExtract attendanceExtractor = factory.buildAttendanceExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); attendanceExtractor.extractEntities(student.getStudentDatedCache()); EntityDatedExtract studentSchoolAssociation = factory.buildStudentSchoolAssociationExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); studentSchoolAssociation.extractEntities(student.getStudentDatedCache()); EntityDatedExtract studentAssessmentExtractor = factory.buildStudentAssessmentExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); studentAssessmentExtractor.extractEntities(student.getStudentDatedCache()); StudentGradebookEntryExtractor studentGradebookExtractor = factory.buildStudentGradebookEntryExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); studentGradebookExtractor.extractEntities(student.getStudentDatedCache()); EntityDatedExtract discipline = factory.buildDisciplineExtractor(entityExtractor, edOrgToExtractFileMap, repository, student.getStudentDatedCache()); discipline.extractEntities(student.getDiDateCache()); YearlyTranscriptExtractor yearlyTranscript = factory.buildYearlyTranscriptExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); yearlyTranscript.extractEntities(student.getStudentDatedCache()); EntityToEdOrgDateCache studentAcademicRecordDateCache = yearlyTranscript.getStudentAcademicRecordDateCache(); EntityDatedExtract courseTranscriptExtractor = factory.buildCourseTranscriptExtractor(entityExtractor, edOrgToExtractFileMap, repository, student.getStudentDatedCache()); courseTranscriptExtractor.extractEntities(studentAcademicRecordDateCache); EntityExtract genericExtractor = factory.buildParentExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); genericExtractor.extractEntities(student.getParentCache()); StaffEdorgAssignmentExtractor seoaExtractor = factory.buildStaffAssociationExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); seoaExtractor.extractEntities(null); EntityDatedExtract staffExtractor = factory.buildStaffExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); staffExtractor.extractEntities(seoaExtractor.getStaffDatedCache()); EntityDatedExtract teacherSchoolAssociationExtractor = factory.buildTeacherSchoolAssociationExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); teacherSchoolAssociationExtractor.extractEntities(seoaExtractor.getStaffDatedCache()); EntityDatedExtract staffProgramExtractor = factory.buildStaffProgramAssociationExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); staffProgramExtractor.extractEntities(seoaExtractor.getStaffDatedCache()); EntityDatedExtract staffCohortExtractor = factory.buildStaffCohortAssociationExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); staffCohortExtractor.extractEntities(seoaExtractor.getStaffDatedCache()); SectionEmbeddedDocsExtractor sectionExtractor = factory.buildSectionExtractor(entityExtractor, edOrgToExtractFileMap, repository, student.getStudentDatedCache(), helper, seoaExtractor.getStaffDatedCache()); sectionExtractor.extractEntities(studentGradebookExtractor.getGradebookEntryCache()); EntityDatedExtract studentCompetencyExtractor = factory.buildStudentCompetencyExtractor(entityExtractor, edOrgToExtractFileMap, repository); studentCompetencyExtractor.extractEntities(sectionExtractor.getStudentSectionAssociationDateCache()); edOrgToExtractFileMap.closeFiles(); edOrgToExtractFileMap.buildManifestFiles(startTime); edOrgToExtractFileMap.archiveFiles(); updateBulkExtractDb(tenant, startTime); LOG.info("Finished top-level extract in: {} seconds", (new DateTime().getMillis() - this.startTime.getMillis()) / 1000); audit(securityEventUtil.createSecurityEvent(this.getClass().getName(), "Marks the end of top-level extract", LogLevelType.TYPE_INFO, BEMessageCode.BE_SE_CODE_0009)); }  void execute(String tenant, File tenantDirectory, DateTime startTime); void setRepository(Repository<Entity> repository); void setEntityExtractor(EntityExtractor entityExtractor); void setEntitiesToCollections(Map<String, String> entitiesToCollections); void setBulkExtractMongoDA(BulkExtractMongoDA bulkExtractMongoDA); void setHelper(EdOrgExtractHelper helper); void setFactory(ExtractorFactory factory); void setEdOrgToExtractMap(ExtractFileMap map); }
EdOrgExtractor { public void execute(String tenant, File tenantDirectory, DateTime startTime) { TenantContext.setTenantId(tenant); this.tenantDirectory = tenantDirectory; this.startTime = startTime; audit(securityEventUtil.createSecurityEvent(this.getClass().getName(), "Top-level extract initiated", LogLevelType.TYPE_INFO, BEMessageCode.BE_SE_CODE_0008)); if (factory == null) { factory = new ExtractorFactory(); } if (edOrgToExtractFileMap == null) { edOrgToExtractFileMap = new ExtractFileMap(buildEdOrgToExtractFile()); } StudentExtractor student = factory.buildStudentExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); student.extractEntities(null); EntityDatedExtract attendanceExtractor = factory.buildAttendanceExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); attendanceExtractor.extractEntities(student.getStudentDatedCache()); EntityDatedExtract studentSchoolAssociation = factory.buildStudentSchoolAssociationExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); studentSchoolAssociation.extractEntities(student.getStudentDatedCache()); EntityDatedExtract studentAssessmentExtractor = factory.buildStudentAssessmentExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); studentAssessmentExtractor.extractEntities(student.getStudentDatedCache()); StudentGradebookEntryExtractor studentGradebookExtractor = factory.buildStudentGradebookEntryExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); studentGradebookExtractor.extractEntities(student.getStudentDatedCache()); EntityDatedExtract discipline = factory.buildDisciplineExtractor(entityExtractor, edOrgToExtractFileMap, repository, student.getStudentDatedCache()); discipline.extractEntities(student.getDiDateCache()); YearlyTranscriptExtractor yearlyTranscript = factory.buildYearlyTranscriptExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); yearlyTranscript.extractEntities(student.getStudentDatedCache()); EntityToEdOrgDateCache studentAcademicRecordDateCache = yearlyTranscript.getStudentAcademicRecordDateCache(); EntityDatedExtract courseTranscriptExtractor = factory.buildCourseTranscriptExtractor(entityExtractor, edOrgToExtractFileMap, repository, student.getStudentDatedCache()); courseTranscriptExtractor.extractEntities(studentAcademicRecordDateCache); EntityExtract genericExtractor = factory.buildParentExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); genericExtractor.extractEntities(student.getParentCache()); StaffEdorgAssignmentExtractor seoaExtractor = factory.buildStaffAssociationExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); seoaExtractor.extractEntities(null); EntityDatedExtract staffExtractor = factory.buildStaffExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); staffExtractor.extractEntities(seoaExtractor.getStaffDatedCache()); EntityDatedExtract teacherSchoolAssociationExtractor = factory.buildTeacherSchoolAssociationExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); teacherSchoolAssociationExtractor.extractEntities(seoaExtractor.getStaffDatedCache()); EntityDatedExtract staffProgramExtractor = factory.buildStaffProgramAssociationExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); staffProgramExtractor.extractEntities(seoaExtractor.getStaffDatedCache()); EntityDatedExtract staffCohortExtractor = factory.buildStaffCohortAssociationExtractor(entityExtractor, edOrgToExtractFileMap, repository, helper); staffCohortExtractor.extractEntities(seoaExtractor.getStaffDatedCache()); SectionEmbeddedDocsExtractor sectionExtractor = factory.buildSectionExtractor(entityExtractor, edOrgToExtractFileMap, repository, student.getStudentDatedCache(), helper, seoaExtractor.getStaffDatedCache()); sectionExtractor.extractEntities(studentGradebookExtractor.getGradebookEntryCache()); EntityDatedExtract studentCompetencyExtractor = factory.buildStudentCompetencyExtractor(entityExtractor, edOrgToExtractFileMap, repository); studentCompetencyExtractor.extractEntities(sectionExtractor.getStudentSectionAssociationDateCache()); edOrgToExtractFileMap.closeFiles(); edOrgToExtractFileMap.buildManifestFiles(startTime); edOrgToExtractFileMap.archiveFiles(); updateBulkExtractDb(tenant, startTime); LOG.info("Finished top-level extract in: {} seconds", (new DateTime().getMillis() - this.startTime.getMillis()) / 1000); audit(securityEventUtil.createSecurityEvent(this.getClass().getName(), "Marks the end of top-level extract", LogLevelType.TYPE_INFO, BEMessageCode.BE_SE_CODE_0009)); }  void execute(String tenant, File tenantDirectory, DateTime startTime); void setRepository(Repository<Entity> repository); void setEntityExtractor(EntityExtractor entityExtractor); void setEntitiesToCollections(Map<String, String> entitiesToCollections); void setBulkExtractMongoDA(BulkExtractMongoDA bulkExtractMongoDA); void setHelper(EdOrgExtractHelper helper); void setFactory(ExtractorFactory factory); void setEdOrgToExtractMap(ExtractFileMap map);  }