|
1 | 1 | /*******************************************************************************
|
2 |
| - * Copyright (c) 2008, 2023 Lablicate GmbH. |
| 2 | + * Copyright (c) 2008, 2025 Lablicate GmbH. |
3 | 3 | *
|
4 | 4 | * All rights reserved.
|
5 | 5 | * This program and the accompanying materials are made available under the
|
|
13 | 13 | package org.eclipse.chemclipse.msd.converter.supplier.mzdata.converter;
|
14 | 14 |
|
15 | 15 | import java.io.File;
|
| 16 | +import java.io.FileNotFoundException; |
| 17 | +import java.io.IOException; |
16 | 18 |
|
| 19 | +import org.eclipse.chemclipse.converter.exceptions.FileIsNotWriteableException; |
| 20 | +import org.eclipse.chemclipse.converter.l10n.ConverterMessages; |
| 21 | +import org.eclipse.chemclipse.logging.core.Logger; |
| 22 | +import org.eclipse.chemclipse.msd.converter.io.IMassSpectraWriter; |
17 | 23 | import org.eclipse.chemclipse.msd.converter.massspectrum.AbstractMassSpectrumExportConverter;
|
| 24 | +import org.eclipse.chemclipse.msd.converter.supplier.mzdata.internal.io.MassSpectrumWriterVersion105; |
18 | 25 | import org.eclipse.chemclipse.msd.model.core.IMassSpectra;
|
19 | 26 | import org.eclipse.chemclipse.msd.model.core.IScanMSD;
|
| 27 | +import org.eclipse.chemclipse.msd.model.implementation.MassSpectra; |
20 | 28 | import org.eclipse.chemclipse.processing.core.IProcessingInfo;
|
21 | 29 | import org.eclipse.chemclipse.processing.core.ProcessingInfo;
|
22 | 30 | import org.eclipse.core.runtime.IProgressMonitor;
|
| 31 | +import org.eclipse.osgi.util.NLS; |
23 | 32 |
|
24 | 33 | public class MassSpectrumExportConverter extends AbstractMassSpectrumExportConverter {
|
25 | 34 |
|
| 35 | + private static final Logger logger = Logger.getLogger(MassSpectrumExportConverter.class); |
26 | 36 | private static final String DESCRIPTION = "mzXML Mass Spectra Export Converter";
|
27 | 37 |
|
28 | 38 | @Override
|
29 | 39 | public IProcessingInfo<File> convert(File file, IScanMSD massSpectrum, boolean append, IProgressMonitor monitor) {
|
30 | 40 |
|
31 |
| - IProcessingInfo<File> processingInfo = new ProcessingInfo<>(); |
32 |
| - processingInfo.addErrorMessage(DESCRIPTION, "It's not possible to export mass spectrum data as mzXML yet."); |
33 |
| - return processingInfo; |
| 41 | + IMassSpectra massSpectra = new MassSpectra(); |
| 42 | + massSpectra.addMassSpectrum(massSpectrum); |
| 43 | + return convert(file, massSpectra, append, monitor); |
34 | 44 | }
|
35 | 45 |
|
36 | 46 | @Override
|
37 | 47 | public IProcessingInfo<File> convert(File file, IMassSpectra massSpectra, boolean append, IProgressMonitor monitor) {
|
38 | 48 |
|
| 49 | + IProcessingInfo<File> processingInfo = validate(file, massSpectra); |
| 50 | + if(!processingInfo.hasErrorMessages()) { |
| 51 | + try { |
| 52 | + IMassSpectraWriter massSpectraWriter = new MassSpectrumWriterVersion105(); |
| 53 | + massSpectraWriter.write(file, massSpectra, append, monitor); |
| 54 | + processingInfo.setProcessingResult(file); |
| 55 | + } catch(FileNotFoundException e) { |
| 56 | + logger.warn(e); |
| 57 | + processingInfo.addErrorMessage(DESCRIPTION, NLS.bind(ConverterMessages.fileNotFound, file.getAbsolutePath())); |
| 58 | + } catch(FileIsNotWriteableException e) { |
| 59 | + logger.warn(e); |
| 60 | + processingInfo.addErrorMessage(DESCRIPTION, NLS.bind(ConverterMessages.fileNotWritable, file.getAbsolutePath())); |
| 61 | + } catch(IOException e) { |
| 62 | + logger.warn(e); |
| 63 | + processingInfo.addErrorMessage(DESCRIPTION, NLS.bind(ConverterMessages.failedToWriteFile, file.getAbsolutePath())); |
| 64 | + } |
| 65 | + } |
| 66 | + return processingInfo; |
| 67 | + } |
| 68 | + |
| 69 | + private IProcessingInfo<File> validate(File file, IMassSpectra massSpectra) { |
| 70 | + |
39 | 71 | IProcessingInfo<File> processingInfo = new ProcessingInfo<>();
|
40 |
| - processingInfo.addErrorMessage(DESCRIPTION, "It's not possible to export mass spectrum data as mzXML yet."); |
| 72 | + processingInfo.addMessages(super.validate(file)); |
| 73 | + processingInfo.addMessages(super.validate(massSpectra)); |
41 | 74 | return processingInfo;
|
42 | 75 | }
|
43 | 76 | }
|
0 commit comments