use of org.openforis.collect.io.data.CSVDataExportProcess in project collect by openforis.
the class DataExportService method export.
@Transactional
public Proxy export(String rootEntityName, int stepNumber, Integer entityId, boolean includeAllAncestorAttributes, boolean includeEnumeratedEntities, boolean includeCompositeAttributeMergedColumn, boolean codeAttributeExpanded, boolean onlyOwnedRecords, String[] rootEntityKeyValues, boolean includeKMLColumnForCoordinates, boolean includeCodeItemLabelColumn, String headingSource, String languageCode, boolean includeGroupingLabels) throws IOException {
if (dataExportProcess == null || !dataExportProcess.getStatus().isRunning()) {
resetJobs();
SessionState sessionState = sessionManager.getSessionState();
CollectSurvey survey = sessionState.getActiveSurvey();
File outputFile = File.createTempFile("collect_data_export_" + survey.getName(), ".zip");
Step step = Step.valueOf(stepNumber);
// prepare record filter
Schema schema = survey.getSchema();
EntityDefinition rootEntityDefn = schema.getRootEntityDefinition(rootEntityName);
RecordFilter recordFilter = createRecordFilter(survey, rootEntityDefn.getId(), onlyOwnedRecords, rootEntityKeyValues);
// filter by record step
recordFilter.setStepGreaterOrEqual(step);
// instantiate process
CSVDataExportProcess process = appContext.getBean(CSVDataExportProcess.class);
process.setOutputFile(outputFile);
process.setRecordFilter(recordFilter);
process.setEntityId(entityId);
process.setAlwaysGenerateZipFile(true);
CSVDataExportParameters config = new CSVDataExportParameters();
config.setIncludeAllAncestorAttributes(includeAllAncestorAttributes);
config.setIncludeEnumeratedEntities(includeEnumeratedEntities);
config.setIncludeCompositeAttributeMergedColumn(includeCompositeAttributeMergedColumn);
config.setIncludeKMLColumnForCoordinates(includeKMLColumnForCoordinates);
config.setCodeAttributeExpanded(codeAttributeExpanded);
config.setIncludeCodeItemLabelColumn(includeCodeItemLabelColumn);
config.setHeadingSource(HeadingSource.valueOf(headingSource));
config.setLanguageCode(languageCode);
config.setIncludeGroupingLabels(includeGroupingLabels);
process.setConfiguration(config);
process.init();
// start process
dataExportProcess = process;
ExecutorServiceUtil.executeInCachedPool(process);
}
return getCurrentJob();
}
Aggregations