diff --git a/chemclipse/plugins/org.eclipse.chemclipse.msd.converter.supplier.amdis/src/org/eclipse/chemclipse/msd/converter/supplier/amdis/io/MSPReader.java b/chemclipse/plugins/org.eclipse.chemclipse.msd.converter.supplier.amdis/src/org/eclipse/chemclipse/msd/converter/supplier/amdis/io/MSPReader.java index 209e55c964..3492608972 100644 --- a/chemclipse/plugins/org.eclipse.chemclipse.msd.converter.supplier.amdis/src/org/eclipse/chemclipse/msd/converter/supplier/amdis/io/MSPReader.java +++ b/chemclipse/plugins/org.eclipse.chemclipse.msd.converter.supplier.amdis/src/org/eclipse/chemclipse/msd/converter/supplier/amdis/io/MSPReader.java @@ -40,6 +40,7 @@ import org.eclipse.chemclipse.msd.model.core.IIon; import org.eclipse.chemclipse.msd.model.core.IMassSpectra; import org.eclipse.chemclipse.msd.model.core.IRegularLibraryMassSpectrum; +import org.eclipse.chemclipse.msd.model.core.Polarity; import org.eclipse.chemclipse.msd.model.exceptions.IonLimitExceededException; import org.eclipse.chemclipse.msd.model.implementation.Ion; import org.eclipse.chemclipse.msd.model.implementation.MassSpectra; @@ -256,9 +257,9 @@ private void addMassSpectrum(IMassSpectra massSpectra, String massSpectrumData, // String ionMode = extractContentAsString(massSpectrumData, ionModePattern, 2); if(ionMode.equals("POSITIVE")) { - massSpectrum.setPolarity("+"); + massSpectrum.setPolarity(Polarity.POSITIVE); } else if(ionMode.equals("NEGATIVE")) { - massSpectrum.setPolarity("-"); + massSpectrum.setPolarity(Polarity.NEGATIVE); } /* * MS/MS diff --git a/chemclipse/plugins/org.eclipse.chemclipse.msd.model/src/org/eclipse/chemclipse/msd/model/core/AbstractRegularLibraryMassSpectrum.java b/chemclipse/plugins/org.eclipse.chemclipse.msd.model/src/org/eclipse/chemclipse/msd/model/core/AbstractRegularLibraryMassSpectrum.java index f0196c578f..96c2f94302 100644 --- a/chemclipse/plugins/org.eclipse.chemclipse.msd.model/src/org/eclipse/chemclipse/msd/model/core/AbstractRegularLibraryMassSpectrum.java +++ b/chemclipse/plugins/org.eclipse.chemclipse.msd.model/src/org/eclipse/chemclipse/msd/model/core/AbstractRegularLibraryMassSpectrum.java @@ -32,7 +32,7 @@ public abstract class AbstractRegularLibraryMassSpectrum extends AbstractRegular // private ILibraryInformation libraryInformation; private String precursorType; - private String polarity; // TODO enum? + private Polarity polarity; private double neutralMass = 0.0d; private Map properties = null; // Initialization on demand @@ -87,7 +87,7 @@ public void setNeutralMass(double neutralMass) { } @Override - public String getPolarity() { + public Polarity getPolarity() { if(polarity != null) { return polarity; @@ -95,17 +95,16 @@ public String getPolarity() { if(properties != null) { String precursorType = getProperty(PROPERTY_PRECURSOR_TYPE); if(precursorType.contains("]+")) { - return "+"; + return Polarity.POSITIVE; } else if(precursorType.contains("]-")) { - return "-"; + return Polarity.NEGATIVE; } } - // - return ""; + return Polarity.NONE; } @Override - public void setPolarity(String polarity) { + public void setPolarity(Polarity polarity) { this.polarity = polarity; } diff --git a/chemclipse/plugins/org.eclipse.chemclipse.msd.model/src/org/eclipse/chemclipse/msd/model/core/IRegularLibraryMassSpectrum.java b/chemclipse/plugins/org.eclipse.chemclipse.msd.model/src/org/eclipse/chemclipse/msd/model/core/IRegularLibraryMassSpectrum.java index 7b777adbc7..5558812011 100644 --- a/chemclipse/plugins/org.eclipse.chemclipse.msd.model/src/org/eclipse/chemclipse/msd/model/core/IRegularLibraryMassSpectrum.java +++ b/chemclipse/plugins/org.eclipse.chemclipse.msd.model/src/org/eclipse/chemclipse/msd/model/core/IRegularLibraryMassSpectrum.java @@ -27,19 +27,9 @@ public interface IRegularLibraryMassSpectrum extends IRegularMassSpectrum, ILibr void setNeutralMass(double neutralMass); - /** - * Returns the polarity if set. - * - * Otherwise returns the polarity (+) or (-) - * if the precursor type is set. - * - * If none is available "" will be returned. - * - * @return String - */ - String getPolarity(); - - void setPolarity(String polarity); + Polarity getPolarity(); + + void setPolarity(Polarity polarity); Set getPropertyKeySet(); diff --git a/chemclipse/plugins/org.eclipse.chemclipse.msd.model/src/org/eclipse/chemclipse/msd/model/core/Polarity.java b/chemclipse/plugins/org.eclipse.chemclipse.msd.model/src/org/eclipse/chemclipse/msd/model/core/Polarity.java new file mode 100644 index 0000000000..ee70b71329 --- /dev/null +++ b/chemclipse/plugins/org.eclipse.chemclipse.msd.model/src/org/eclipse/chemclipse/msd/model/core/Polarity.java @@ -0,0 +1,39 @@ +/******************************************************************************* + * Copyright (c) 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 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Matthias Mailänder - initial API and implementation + *******************************************************************************/ +package org.eclipse.chemclipse.msd.model.core; + +import org.eclipse.chemclipse.support.text.ILabel; + +public enum Polarity implements ILabel { + + POSITIVE("+"), // + NEGATIVE("-"), // + NONE(""); + + private String label; + + private Polarity(String label) { + + this.label = label; + } + + @Override + public String label() { + + return label; + } + + public static String[][] getOptions() { + + return ILabel.getOptions(values()); + } +} diff --git a/chemclipse/tests/org.eclipse.chemclipse.msd.converter.supplier.amdis.fragment.test/src/org/eclipse/chemclipse/msd/converter/supplier/amdis/converter/msp/MassBankMS2ImportConverter_ITest.java b/chemclipse/tests/org.eclipse.chemclipse.msd.converter.supplier.amdis.fragment.test/src/org/eclipse/chemclipse/msd/converter/supplier/amdis/converter/msp/MassBankMS2ImportConverter_ITest.java index dae4c29ce2..9f482bbf54 100644 --- a/chemclipse/tests/org.eclipse.chemclipse.msd.converter.supplier.amdis.fragment.test/src/org/eclipse/chemclipse/msd/converter/supplier/amdis/converter/msp/MassBankMS2ImportConverter_ITest.java +++ b/chemclipse/tests/org.eclipse.chemclipse.msd.converter.supplier.amdis.fragment.test/src/org/eclipse/chemclipse/msd/converter/supplier/amdis/converter/msp/MassBankMS2ImportConverter_ITest.java @@ -17,6 +17,7 @@ import org.eclipse.chemclipse.msd.converter.supplier.amdis.io.ImportConverterMspTestCase; import org.eclipse.chemclipse.msd.model.core.IRegularLibraryMassSpectrum; import org.eclipse.chemclipse.msd.model.core.IScanMSD; +import org.eclipse.chemclipse.msd.model.core.Polarity; import org.junit.Test; public class MassBankMS2ImportConverter_ITest extends ImportConverterMspTestCase { @@ -51,7 +52,7 @@ public void testMassSpectrum() { assertEquals(288.1225d, regularLibraryMassSpectrum.getPrecursorIon()); assertEquals(287.11575d, regularLibraryMassSpectrum.getNeutralMass()); assertEquals("30(NCE)", regularLibraryMassSpectrum.getProperty(IRegularLibraryMassSpectrum.PROPERTY_COLLISION_ENERGY)); - assertEquals("+", regularLibraryMassSpectrum.getPolarity()); + assertEquals(Polarity.POSITIVE, regularLibraryMassSpectrum.getPolarity()); assertEquals("[M+H]+", regularLibraryMassSpectrum.getProperty(IRegularLibraryMassSpectrum.PROPERTY_PRECURSOR_TYPE)); assertEquals("Q-Exactive Orbitrap Thermo Scientific", regularLibraryMassSpectrum.getProperty(IRegularLibraryMassSpectrum.PROPERTY_INSTRUMENT_NAME)); } diff --git a/chemclipse/tests/org.eclipse.chemclipse.msd.model.fragment.test/src/org/eclipse/chemclipse/msd/model/implementation/RegularLibraryMassSpectrum_4_Test.java b/chemclipse/tests/org.eclipse.chemclipse.msd.model.fragment.test/src/org/eclipse/chemclipse/msd/model/implementation/RegularLibraryMassSpectrum_4_Test.java index 7c7b7e9d87..13796cebe0 100644 --- a/chemclipse/tests/org.eclipse.chemclipse.msd.model.fragment.test/src/org/eclipse/chemclipse/msd/model/implementation/RegularLibraryMassSpectrum_4_Test.java +++ b/chemclipse/tests/org.eclipse.chemclipse.msd.model.fragment.test/src/org/eclipse/chemclipse/msd/model/implementation/RegularLibraryMassSpectrum_4_Test.java @@ -12,6 +12,7 @@ package org.eclipse.chemclipse.msd.model.implementation; import org.eclipse.chemclipse.msd.model.core.IRegularLibraryMassSpectrum; +import org.eclipse.chemclipse.msd.model.core.Polarity; import junit.framework.TestCase; @@ -52,7 +53,7 @@ public void test3() { public void test4() { - assertEquals("", massSpectrum.getPolarity()); + assertEquals(Polarity.NONE, massSpectrum.getPolarity()); } public void test5() { diff --git a/chemclipse/tests/org.eclipse.chemclipse.msd.model.fragment.test/src/org/eclipse/chemclipse/msd/model/implementation/RegularLibraryMassSpectrum_5_Test.java b/chemclipse/tests/org.eclipse.chemclipse.msd.model.fragment.test/src/org/eclipse/chemclipse/msd/model/implementation/RegularLibraryMassSpectrum_5_Test.java index 55ba78981f..2a895f2dbb 100644 --- a/chemclipse/tests/org.eclipse.chemclipse.msd.model.fragment.test/src/org/eclipse/chemclipse/msd/model/implementation/RegularLibraryMassSpectrum_5_Test.java +++ b/chemclipse/tests/org.eclipse.chemclipse.msd.model.fragment.test/src/org/eclipse/chemclipse/msd/model/implementation/RegularLibraryMassSpectrum_5_Test.java @@ -12,6 +12,7 @@ package org.eclipse.chemclipse.msd.model.implementation; import org.eclipse.chemclipse.msd.model.core.IRegularLibraryMassSpectrum; +import org.eclipse.chemclipse.msd.model.core.Polarity; import junit.framework.TestCase; @@ -55,7 +56,7 @@ public void test3() { public void test4() { - assertEquals("+", massSpectrum.getPolarity()); + assertEquals(Polarity.POSITIVE, massSpectrum.getPolarity()); } public void test5() { diff --git a/chemclipse/tests/org.eclipse.chemclipse.msd.model.fragment.test/src/org/eclipse/chemclipse/msd/model/implementation/RegularLibraryMassSpectrum_6_Test.java b/chemclipse/tests/org.eclipse.chemclipse.msd.model.fragment.test/src/org/eclipse/chemclipse/msd/model/implementation/RegularLibraryMassSpectrum_6_Test.java index 6a21a280d8..7deb9eaed8 100644 --- a/chemclipse/tests/org.eclipse.chemclipse.msd.model.fragment.test/src/org/eclipse/chemclipse/msd/model/implementation/RegularLibraryMassSpectrum_6_Test.java +++ b/chemclipse/tests/org.eclipse.chemclipse.msd.model.fragment.test/src/org/eclipse/chemclipse/msd/model/implementation/RegularLibraryMassSpectrum_6_Test.java @@ -12,6 +12,7 @@ package org.eclipse.chemclipse.msd.model.implementation; import org.eclipse.chemclipse.msd.model.core.IRegularLibraryMassSpectrum; +import org.eclipse.chemclipse.msd.model.core.Polarity; import junit.framework.TestCase; @@ -55,7 +56,7 @@ public void test3() { public void test4() { - assertEquals("-", massSpectrum.getPolarity()); + assertEquals(Polarity.NEGATIVE, massSpectrum.getPolarity()); } public void test5() { diff --git a/chemclipse/tests/org.eclipse.chemclipse.msd.model.fragment.test/src/org/eclipse/chemclipse/msd/model/implementation/RegularLibraryMassSpectrum_7_Test.java b/chemclipse/tests/org.eclipse.chemclipse.msd.model.fragment.test/src/org/eclipse/chemclipse/msd/model/implementation/RegularLibraryMassSpectrum_7_Test.java index 7403d9d19e..b422e519b1 100644 --- a/chemclipse/tests/org.eclipse.chemclipse.msd.model.fragment.test/src/org/eclipse/chemclipse/msd/model/implementation/RegularLibraryMassSpectrum_7_Test.java +++ b/chemclipse/tests/org.eclipse.chemclipse.msd.model.fragment.test/src/org/eclipse/chemclipse/msd/model/implementation/RegularLibraryMassSpectrum_7_Test.java @@ -12,6 +12,7 @@ package org.eclipse.chemclipse.msd.model.implementation; import org.eclipse.chemclipse.msd.model.core.IRegularLibraryMassSpectrum; +import org.eclipse.chemclipse.msd.model.core.Polarity; import junit.framework.TestCase; @@ -55,7 +56,7 @@ public void test3() { public void test4() { - assertEquals("+", massSpectrum.getPolarity()); + assertEquals(Polarity.POSITIVE, massSpectrum.getPolarity()); } public void test5() { diff --git a/chemclipse/tests/org.eclipse.chemclipse.msd.model.fragment.test/src/org/eclipse/chemclipse/msd/model/implementation/RegularLibraryMassSpectrum_8_Test.java b/chemclipse/tests/org.eclipse.chemclipse.msd.model.fragment.test/src/org/eclipse/chemclipse/msd/model/implementation/RegularLibraryMassSpectrum_8_Test.java index 33ee392843..7f4f2c72b5 100644 --- a/chemclipse/tests/org.eclipse.chemclipse.msd.model.fragment.test/src/org/eclipse/chemclipse/msd/model/implementation/RegularLibraryMassSpectrum_8_Test.java +++ b/chemclipse/tests/org.eclipse.chemclipse.msd.model.fragment.test/src/org/eclipse/chemclipse/msd/model/implementation/RegularLibraryMassSpectrum_8_Test.java @@ -12,6 +12,7 @@ package org.eclipse.chemclipse.msd.model.implementation; import org.eclipse.chemclipse.msd.model.core.IRegularLibraryMassSpectrum; +import org.eclipse.chemclipse.msd.model.core.Polarity; import junit.framework.TestCase; @@ -55,7 +56,7 @@ public void test3() { public void test4() { - assertEquals("+", massSpectrum.getPolarity()); + assertEquals(Polarity.POSITIVE, massSpectrum.getPolarity()); } public void test5() {