Skip to content

Package: EMFFormsSpreadsheetFileImporterImpl

EMFFormsSpreadsheetFileImporterImpl

nameinstructionbranchcomplexitylinemethod
EMFFormsSpreadsheetFileImporterImpl()
M: 3 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
importSpreadsheet(File, EClass)
M: 70 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 19 C: 0
0%
M: 1 C: 0
0%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
3: *
4: * All rights reserved. This program and the accompanying materials
5: * are made available under the terms of the Eclipse Public License 2.0
6: * which accompanies this distribution, and is available at
7: * https://www.eclipse.org/legal/epl-2.0/
8: *
9: * SPDX-License-Identifier: EPL-2.0
10: *
11: * Contributors:
12: * Eugen - initial API and implementation
13: ******************************************************************************/
14: package org.eclipse.emfforms.internal.spreadsheet.file;
15:
16: import java.io.File;
17: import java.io.FileInputStream;
18: import java.io.IOException;
19:
20: import org.apache.poi.hssf.usermodel.HSSFWorkbook;
21: import org.apache.poi.ss.usermodel.Workbook;
22: import org.eclipse.emf.ecore.EClass;
23: import org.eclipse.emfforms.internal.spreadsheet.file.messages.Messages;
24: import org.eclipse.emfforms.spi.common.report.ReportService;
25: import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetReport;
26: import org.eclipse.emfforms.spi.spreadsheet.core.error.model.ErrorFactory;
27: import org.eclipse.emfforms.spi.spreadsheet.core.error.model.Severity;
28: import org.eclipse.emfforms.spi.spreadsheet.core.error.model.SpreadsheetImportResult;
29: import org.eclipse.emfforms.spi.spreadsheet.core.transfer.EMFFormsSpreadsheetImporter;
30: import org.eclipse.emfforms.spi.spreadsheet.file.EMFFormsSpreadsheetFileImporter;
31: import org.osgi.framework.BundleContext;
32: import org.osgi.framework.FrameworkUtil;
33: import org.osgi.framework.ServiceReference;
34:
35: /**
36: * Class for importing data from the provided File.
37: *
38: * @author Eugen Neufeld
39: *
40: */
41: public class EMFFormsSpreadsheetFileImporterImpl implements EMFFormsSpreadsheetFileImporter {
42:
43:         /**
44:          * {@inheritDoc}
45:          *
46:          * @see org.eclipse.emfforms.spi.spreadsheet.file.EMFFormsSpreadsheetFileImporter#importSpreadsheet(java.io.File,
47:          * org.eclipse.emf.ecore.EClass)
48:          */
49:         @Override
50:         public SpreadsheetImportResult importSpreadsheet(File file, EClass eClass) {
51:                 final BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext();
52:                 final ServiceReference<ReportService> serviceReference = bundleContext.getServiceReference(ReportService.class);
53:                 final ReportService reportService = bundleContext.getService(serviceReference);
54:
55:                 Workbook workbook = null;
56:                 FileInputStream inputStream = null;
57:                 try {
58:                         inputStream = new FileInputStream(file);
59:                         workbook = new HSSFWorkbook(inputStream);
60:                 } catch (final IOException ex) {
61:                         reportService.report(new EMFFormsSpreadsheetReport(ex, 4));
62:                 } finally {
63:                         try {
64:                                 inputStream.close();
65:                         } catch (final IOException ex) {
66:                                 reportService.report(new EMFFormsSpreadsheetReport(ex, 4));
67:                         }
68:                 }
69:                 bundleContext.ungetService(serviceReference);
70:•                if (workbook == null) {
71:                         final SpreadsheetImportResult result = ErrorFactory.eINSTANCE.createSpreadsheetImportResult();
72:                         result.reportError(Severity.CANCEL, Messages.EMFFormsSpreadsheetFileImporterImpl_FileNotAWorkbook);
73:                         return result;
74:                 }
75:                 final SpreadsheetImportResult result = EMFFormsSpreadsheetImporter.INSTANCE.importSpreadsheet(workbook, eClass);
76:                 return result;
77:         }
78:
79: }