Skip to content

Commit

Permalink
Fixed #346 - Support for LC-Raman and GC-FTIR models
Browse files Browse the repository at this point in the history
  • Loading branch information
eselmeister committed Feb 23, 2023
1 parent aebe2ec commit c5fcc82
Show file tree
Hide file tree
Showing 7 changed files with 57 additions and 54 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2021 Lablicate GmbH.
* Copyright (c) 2021, 2023 Lablicate GmbH.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
Expand All @@ -17,14 +17,14 @@
import org.eclipse.chemclipse.processing.core.ProcessingInfo;
import org.eclipse.chemclipse.xir.converter.core.AbstractScanExportConverter;
import org.eclipse.chemclipse.xir.converter.core.IScanExportConverter;
import org.eclipse.chemclipse.xir.model.core.IScanXIR;
import org.eclipse.chemclipse.xir.model.core.ISpectrumXIR;
import org.eclipse.core.runtime.IProgressMonitor;

@SuppressWarnings("rawtypes")
public class ScanExportConverter extends AbstractScanExportConverter implements IScanExportConverter {

@Override
public IProcessingInfo<?> convert(File file, IScanXIR scan, IProgressMonitor monitor) {
public IProcessingInfo<?> convert(File file, ISpectrumXIR scan, IProgressMonitor monitor) {

IProcessingInfo<?> processingInfo = new ProcessingInfo<>();
processingInfo.addInfoMessage("GAML", "Export is not available");
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2021 Lablicate GmbH.
* Copyright (c) 2021, 2023 Lablicate GmbH.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
Expand All @@ -26,7 +26,7 @@
import net.openchrom.xir.converter.supplier.gaml.io.ScanReaderVersion100;
import net.openchrom.xir.converter.supplier.gaml.io.ScanReaderVersion110;
import net.openchrom.xir.converter.supplier.gaml.io.ScanReaderVersion120;
import net.openchrom.xir.converter.supplier.gaml.model.IVendorScanXIR;
import net.openchrom.xir.converter.supplier.gaml.model.IVendorSpectrumXIR;
import net.openchrom.xxd.converter.supplier.gaml.internal.io.IConstants;

@SuppressWarnings("rawtypes")
Expand All @@ -35,9 +35,9 @@ public class ScanImportConverter extends AbstractScanImportConverter implements
private static final Logger logger = Logger.getLogger(ScanImportConverter.class);

@Override
public IProcessingInfo<IVendorScanXIR> convert(File file, IProgressMonitor monitor) {
public IProcessingInfo<IVendorSpectrumXIR> convert(File file, IProgressMonitor monitor) {

IProcessingInfo<IVendorScanXIR> processingInfo = new ProcessingInfo<>();
IProcessingInfo<IVendorSpectrumXIR> processingInfo = new ProcessingInfo<>();
try {
final FileReader fileReader = new FileReader(file);
final char[] charBuffer = new char[100];
Expand All @@ -47,15 +47,15 @@ public IProcessingInfo<IVendorScanXIR> convert(File file, IProgressMonitor monit
final String header = new String(charBuffer);
if(header.contains(IConstants.GAML_V_100)) {
ScanReaderVersion100 scanReader = new ScanReaderVersion100();
IVendorScanXIR vendorScan = scanReader.read(file, monitor);
IVendorSpectrumXIR vendorScan = scanReader.read(file, monitor);
processingInfo.setProcessingResult(vendorScan);
} else if(header.contains(IConstants.GAML_V_110)) {
ScanReaderVersion110 scanReader = new ScanReaderVersion110();
IVendorScanXIR vendorScan = scanReader.read(file, monitor);
IVendorSpectrumXIR vendorScan = scanReader.read(file, monitor);
processingInfo.setProcessingResult(vendorScan);
} else if(header.contains(IConstants.GAML_V_120)) {
ScanReaderVersion120 scanReader = new ScanReaderVersion120();
IVendorScanXIR vendorScan = scanReader.read(file, monitor);
IVendorSpectrumXIR vendorScan = scanReader.read(file, monitor);
processingInfo.setProcessingResult(vendorScan);
} else {
throw new UnknownVersionException();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2021, 2022 Lablicate GmbH.
* Copyright (c) 2021, 2023 Lablicate GmbH.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
Expand All @@ -20,17 +20,14 @@
import javax.xml.parsers.ParserConfigurationException;

import org.eclipse.chemclipse.logging.core.Logger;
import org.eclipse.chemclipse.xir.model.core.SignalXIR;
import org.eclipse.chemclipse.xir.model.implementation.SignalXIR;
import org.eclipse.core.runtime.IProgressMonitor;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

import jakarta.xml.bind.JAXBContext;
import jakarta.xml.bind.JAXBException;
import jakarta.xml.bind.Unmarshaller;
import net.openchrom.xir.converter.supplier.gaml.model.IVendorScanXIR;
import net.openchrom.xir.converter.supplier.gaml.model.VendorScanXIR;
import net.openchrom.xir.converter.supplier.gaml.model.IVendorSpectrumXIR;
import net.openchrom.xir.converter.supplier.gaml.model.VendorSpectrumXIR;
import net.openchrom.xxd.converter.supplier.gaml.internal.io.IConstants;
import net.openchrom.xxd.converter.supplier.gaml.internal.v100.model.Experiment;
import net.openchrom.xxd.converter.supplier.gaml.internal.v100.model.GAML;
Expand All @@ -41,13 +38,17 @@
import net.openchrom.xxd.converter.supplier.gaml.internal.v100.model.Ydata;
import net.openchrom.xxd.converter.supplier.gaml.io.Reader100;

import jakarta.xml.bind.JAXBContext;
import jakarta.xml.bind.JAXBException;
import jakarta.xml.bind.Unmarshaller;

public class ScanReaderVersion100 {

private static final Logger logger = Logger.getLogger(ScanReaderVersion100.class);

public IVendorScanXIR read(File file, IProgressMonitor monitor) throws IOException {
public IVendorSpectrumXIR read(File file, IProgressMonitor monitor) throws IOException {

IVendorScanXIR vendorScan = null;
IVendorSpectrumXIR vendorScan = null;
try {
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
Expand All @@ -57,7 +58,7 @@ public IVendorScanXIR read(File file, IProgressMonitor monitor) throws IOExcepti
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
GAML gaml = (GAML)unmarshaller.unmarshal(nodeList.item(0));
for(Experiment experiment : gaml.getExperiment()) {
vendorScan = new VendorScanXIR();
vendorScan = new VendorSpectrumXIR();
vendorScan.setDataName(experiment.getName());
XMLGregorianCalendar collectDate = experiment.getCollectdate();
if(collectDate != null) {
Expand All @@ -79,7 +80,7 @@ public IVendorScanXIR read(File file, IProgressMonitor monitor) throws IOExcepti
}
int scans = Math.min(waveNumbers.length, absorbance.length);
for(int i = 0; i < scans; i++) {
vendorScan.getProcessedSignals().add(new SignalXIR(waveNumbers[i], absorbance[i], 0));
vendorScan.getScanXIR().getProcessedSignals().add(new SignalXIR(waveNumbers[i], absorbance[i], 0));
}
}
}
Expand All @@ -94,4 +95,4 @@ public IVendorScanXIR read(File file, IProgressMonitor monitor) throws IOExcepti
}
return vendorScan;
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2021, 2022 Lablicate GmbH.
* Copyright (c) 2021, 2023 Lablicate GmbH.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
Expand All @@ -20,17 +20,14 @@
import javax.xml.parsers.ParserConfigurationException;

import org.eclipse.chemclipse.logging.core.Logger;
import org.eclipse.chemclipse.xir.model.core.SignalXIR;
import org.eclipse.chemclipse.xir.model.implementation.SignalXIR;
import org.eclipse.core.runtime.IProgressMonitor;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

import jakarta.xml.bind.JAXBContext;
import jakarta.xml.bind.JAXBException;
import jakarta.xml.bind.Unmarshaller;
import net.openchrom.xir.converter.supplier.gaml.model.IVendorScanXIR;
import net.openchrom.xir.converter.supplier.gaml.model.VendorScanXIR;
import net.openchrom.xir.converter.supplier.gaml.model.IVendorSpectrumXIR;
import net.openchrom.xir.converter.supplier.gaml.model.VendorSpectrumXIR;
import net.openchrom.xxd.converter.supplier.gaml.internal.io.IConstants;
import net.openchrom.xxd.converter.supplier.gaml.internal.v110.model.Experiment;
import net.openchrom.xxd.converter.supplier.gaml.internal.v110.model.GAML;
Expand All @@ -41,13 +38,17 @@
import net.openchrom.xxd.converter.supplier.gaml.internal.v110.model.Ydata;
import net.openchrom.xxd.converter.supplier.gaml.io.Reader110;

import jakarta.xml.bind.JAXBContext;
import jakarta.xml.bind.JAXBException;
import jakarta.xml.bind.Unmarshaller;

public class ScanReaderVersion110 {

private static final Logger logger = Logger.getLogger(ScanReaderVersion110.class);

public IVendorScanXIR read(File file, IProgressMonitor monitor) throws IOException {
public IVendorSpectrumXIR read(File file, IProgressMonitor monitor) throws IOException {

IVendorScanXIR vendorScan = null;
IVendorSpectrumXIR vendorScan = null;
try {
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
Expand All @@ -57,7 +58,7 @@ public IVendorScanXIR read(File file, IProgressMonitor monitor) throws IOExcepti
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
GAML gaml = (GAML)unmarshaller.unmarshal(nodeList.item(0));
for(Experiment experiment : gaml.getExperiment()) {
vendorScan = new VendorScanXIR();
vendorScan = new VendorSpectrumXIR();
vendorScan.setDataName(experiment.getName());
XMLGregorianCalendar collectDate = experiment.getCollectdate();
if(collectDate != null) {
Expand All @@ -79,7 +80,7 @@ public IVendorScanXIR read(File file, IProgressMonitor monitor) throws IOExcepti
}
int scans = Math.min(waveNumbers.length, absorbance.length);
for(int i = 0; i < scans; i++) {
vendorScan.getProcessedSignals().add(new SignalXIR(waveNumbers[i], absorbance[i], 0));
vendorScan.getScanXIR().getProcessedSignals().add(new SignalXIR(waveNumbers[i], absorbance[i], 0));
}
}
}
Expand All @@ -94,4 +95,4 @@ public IVendorScanXIR read(File file, IProgressMonitor monitor) throws IOExcepti
}
return vendorScan;
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2021, 2022 Lablicate GmbH.
* Copyright (c) 2021, 2023 Lablicate GmbH.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
Expand All @@ -20,17 +20,14 @@
import javax.xml.parsers.ParserConfigurationException;

import org.eclipse.chemclipse.logging.core.Logger;
import org.eclipse.chemclipse.xir.model.core.SignalXIR;
import org.eclipse.chemclipse.xir.model.implementation.SignalXIR;
import org.eclipse.core.runtime.IProgressMonitor;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

import jakarta.xml.bind.JAXBContext;
import jakarta.xml.bind.JAXBException;
import jakarta.xml.bind.Unmarshaller;
import net.openchrom.xir.converter.supplier.gaml.model.IVendorScanXIR;
import net.openchrom.xir.converter.supplier.gaml.model.VendorScanXIR;
import net.openchrom.xir.converter.supplier.gaml.model.IVendorSpectrumXIR;
import net.openchrom.xir.converter.supplier.gaml.model.VendorSpectrumXIR;
import net.openchrom.xxd.converter.supplier.gaml.internal.io.IConstants;
import net.openchrom.xxd.converter.supplier.gaml.internal.v120.model.Experiment;
import net.openchrom.xxd.converter.supplier.gaml.internal.v120.model.GAML;
Expand All @@ -41,13 +38,17 @@
import net.openchrom.xxd.converter.supplier.gaml.internal.v120.model.Ydata;
import net.openchrom.xxd.converter.supplier.gaml.io.Reader120;

import jakarta.xml.bind.JAXBContext;
import jakarta.xml.bind.JAXBException;
import jakarta.xml.bind.Unmarshaller;

public class ScanReaderVersion120 {

private static final Logger logger = Logger.getLogger(ScanReaderVersion120.class);

public IVendorScanXIR read(File file, IProgressMonitor monitor) throws IOException {
public IVendorSpectrumXIR read(File file, IProgressMonitor monitor) throws IOException {

IVendorScanXIR vendorScan = null;
IVendorSpectrumXIR vendorScan = null;
try {
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
Expand All @@ -57,7 +58,7 @@ public IVendorScanXIR read(File file, IProgressMonitor monitor) throws IOExcepti
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
GAML gaml = (GAML)unmarshaller.unmarshal(nodeList.item(0));
for(Experiment experiment : gaml.getExperiment()) {
vendorScan = new VendorScanXIR();
vendorScan = new VendorSpectrumXIR();
vendorScan.setDataName(experiment.getName());
XMLGregorianCalendar collectDate = experiment.getCollectdate();
if(collectDate != null) {
Expand All @@ -79,7 +80,7 @@ public IVendorScanXIR read(File file, IProgressMonitor monitor) throws IOExcepti
}
int scans = Math.min(waveNumbers.length, absorbance.length);
for(int i = 0; i < scans; i++) {
vendorScan.getProcessedSignals().add(new SignalXIR(waveNumbers[i], absorbance[i], 0));
vendorScan.getScanXIR().getProcessedSignals().add(new SignalXIR(waveNumbers[i], absorbance[i], 0));
}
}
}
Expand All @@ -94,4 +95,4 @@ public IVendorScanXIR read(File file, IProgressMonitor monitor) throws IOExcepti
}
return vendorScan;
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2021 Lablicate GmbH.
* Copyright (c) 2021, 2023 Lablicate GmbH.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
Expand All @@ -11,7 +11,7 @@
*******************************************************************************/
package net.openchrom.xir.converter.supplier.gaml.model;

import org.eclipse.chemclipse.xir.model.core.IScanXIR;
import org.eclipse.chemclipse.xir.model.core.ISpectrumXIR;

public interface IVendorScanXIR extends IScanXIR {
}
public interface IVendorSpectrumXIR extends ISpectrumXIR {
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2021 Lablicate GmbH.
* Copyright (c) 2021, 2023 Lablicate GmbH.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
Expand All @@ -11,9 +11,9 @@
*******************************************************************************/
package net.openchrom.xir.converter.supplier.gaml.model;

import org.eclipse.chemclipse.xir.model.core.ScanXIR;
import org.eclipse.chemclipse.xir.model.implementation.SpectrumXIR;

public class VendorScanXIR extends ScanXIR implements IVendorScanXIR {
public class VendorSpectrumXIR extends SpectrumXIR implements IVendorSpectrumXIR {

private static final long serialVersionUID = 925295618346515442L;
}
}

0 comments on commit c5fcc82

Please sign in to comment.