Commits

petermr committed ef3ac28

fixed XYZModule loading; rogue semicolon

Comments (0)

Files changed (25)

jc-molecule-axyz/.classpath

-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
-	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
-	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
-	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
-	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
-	<classpathentry kind="output" path="target/classes"/>
-</classpath>

jc-molecule-axyz/.project

-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>jc-molecule-xyz</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.m2e.core.maven2Builder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.m2e.core.maven2Nature</nature>
-	</natures>
-</projectDescription>

jc-molecule-axyz/.settings/org.eclipse.core.resources.prefs

-#Wed Feb 15 21:55:40 GMT 2012
-eclipse.preferences.version=1
-encoding//src/main/java=UTF-8
-encoding//src/main/resources=UTF-8
-encoding//src/test/java=UTF-8
-encoding//src/test/resources=UTF-8
-encoding/<project>=UTF-8

jc-molecule-axyz/.settings/org.eclipse.jdt.core.prefs

-#Sat Feb 11 21:06:58 GMT 2012
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.6

jc-molecule-axyz/.settings/org.eclipse.m2e.core.prefs

-#Wed Jan 04 18:20:05 GMT 2012
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1

jc-molecule-axyz/pom.xml

-<?xml version="1.0" encoding="UTF-8"?>
-<project
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
-	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-	<modelVersion>4.0.0</modelVersion>
-
-	<parent>
-		<groupId>org.xml-cml.jc</groupId>
-		<artifactId>jc-molecule</artifactId>
-		<version>0.3-SNAPSHOT</version>
-	</parent>
-
-	<artifactId>jc-molecule-axyz</artifactId>
-	<name>jc-molecule-axyz</name>
-
-	<dependencies>
-		<dependency>
-			<groupId>${jc.groupId}</groupId>
-			<artifactId>jc-top-core</artifactId>
-            <version>${project.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>${jc.groupId}</groupId>
-			<artifactId>jc-molecule-cml</artifactId>
-            <version>${project.version}</version>
-		</dependency>
-
-	</dependencies>
-</project>

jc-molecule-axyz/src/main/java/org/xmlcml/cml/converters/molecule/xyz/CML2XYZConverter.java

-package org.xmlcml.cml.converters.molecule.xyz;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import nu.xom.Element;
-
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
-import org.xmlcml.cml.base.CMLBuilder;
-import org.xmlcml.cml.base.CMLElement;
-import org.xmlcml.cml.base.CMLElement.CoordinateType;
-import org.xmlcml.cml.converters.AbstractConverter;
-import org.xmlcml.cml.converters.Converter;
-import org.xmlcml.cml.converters.MimeType;
-import org.xmlcml.cml.converters.cml.CMLCommon;
-import org.xmlcml.cml.converters.cml.CMLSelector;
-import org.xmlcml.cml.element.CMLAtom;
-import org.xmlcml.cml.element.CMLMolecule;
-
-public class CML2XYZConverter extends AbstractConverter implements
-		Converter {
-
-	private static final Logger LOG = Logger.getLogger(CML2XYZConverter.class);
-	static {
-		LOG.setLevel(Level.INFO);
-	}
-	/**
-	 * converts a CML object to XYZ. assumes a single CMLMolecule as descendant
-	 * of root
-	 * 
-	 * @param xml
-	 */
-	@Override
-	public List<String> convertToText(Element xml) {
-		CMLElement cml = CMLBuilder.ensureCML(xml);
-		CMLMolecule molecule = new CMLSelector(cml).getToplevelMoleculeDescendant(true);
-		List<String> lines = new ArrayList<String>();
-		if (molecule != null) {
-			lines = convertToText(molecule);
-		}
-		return lines;
-	}
-
-	private List<String> convertToText(CMLMolecule molecule) {
-		if (!molecule.hasCoordinates(CoordinateType.CARTESIAN)) {
-			throw new RuntimeException("Molecule has no 3D coordinates");
-		}
-		List<String> lines = new ArrayList<String>();
-		lines.add(str(molecule.getAtomCount()));
-		lines.add(molecule.getTitle());
-		for (CMLAtom atom : molecule.getAtoms()) {
-			StringBuilder sb = new StringBuilder();
-			sb.append(atom.getElementType()).append(" ").append(
-					str(atom.getX3())).append(" ").append(str(atom.getY3()))
-					.append(" ").append(str(atom.getZ3()));
-			lines.add(sb.toString());
-		}
-		return lines;
-	}
-
-	public MimeType getInputType() {
-		return CMLCommon.CML_TYPE;
-	}
-	
-	public MimeType getOutputType() {
-		return XYZModule.XYZ_TYPE;
-	}
-	
-	public String getDescription() {
-		return "convert CML to XYZ";
-	}
-
-}

jc-molecule-axyz/src/main/java/org/xmlcml/cml/converters/molecule/xyz/XYZ2CMLConverter.java

-package org.xmlcml.cml.converters.molecule.xyz;
-
-import java.util.List;
-import java.util.StringTokenizer;
-
-import nu.xom.Element;
-
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
-import org.xmlcml.cml.converters.AbstractConverter;
-import org.xmlcml.cml.converters.Converter;
-import org.xmlcml.cml.converters.MimeType;
-import org.xmlcml.cml.converters.cml.CMLCommon;
-import org.xmlcml.cml.element.CMLAtom;
-import org.xmlcml.cml.element.CMLCml;
-import org.xmlcml.cml.element.CMLMolecule;
-import org.xmlcml.euclid.Util;
-
-public class XYZ2CMLConverter extends AbstractConverter implements
-		Converter {
-
-	private static final Logger LOG = Logger.getLogger(XYZ2CMLConverter.class);
-	static {
-		LOG.setLevel(Level.INFO);
-	};
-	
-	
-	/**
-	 * converts an XYZ object to CML. returns cml:cml/cml:molecule
-	 * 
-	 * @param lines
-	 */
-	public Element convertToXML(List<String> lines) {
-		CMLMolecule molecule = new CMLMolecule();
-		int nline = 0;
-		int natoms = 0;
-		String s = lines.get(nline++);
-		try {
-			natoms = Integer.parseInt(s.trim());
-		} catch (NumberFormatException e) {
-			throw new RuntimeException("Bad atom count: " + s);
-		}
-
-		String title = lines.get(nline++);
-		molecule.setTitle(title);
-		for (int i = 0; i < natoms; i++) {
-			String line = lines.get(nline++);
-			if (line == null || line.trim().length() == 0) {
-				throw new RuntimeException("too few lines; ended after "
-						+ nline + "; expected " + natoms + 2);
-			}
-			CMLAtom atom = new CMLAtom();
-			atom.setId("a" + (i + 1));
-			StringTokenizer st = new StringTokenizer(line);
-			if (st.countTokens() != 4) {
-				throw new RuntimeException("Bad line (" + (i + 1)
-						+ ") - found (" + line + ")");
-			}
-			atom.setElementType(st.nextToken());
-			atom.setX3(Util.getDouble(st.nextToken()));
-			atom.setY3(Util.getDouble(st.nextToken()));
-			atom.setZ3(Util.getDouble(st.nextToken()));
-			molecule.addAtom(atom);
-		}
-		CMLCml cml = new CMLCml();
-		cml.appendChild(molecule);
-//		cml.debug("CML2XYZ");
-		return cml;
-	}
-
-	public MimeType getInputType() {
-		return XYZModule.XYZ_TYPE;
-	}
-	
-	public MimeType getOutputType() {
-		return CMLCommon.CML_TYPE;
-	}
-	
-	public String getDescription() {
-		return "convert XYZ to CML";
-	}
-
-}

jc-molecule-axyz/src/main/java/org/xmlcml/cml/converters/molecule/xyz/XYZModule.java

-package org.xmlcml.cml.converters.molecule.xyz;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.xmlcml.cml.converters.Converter;
-import org.xmlcml.cml.converters.MimeType;
-import org.xmlcml.cml.converters.MimeType.ObjectType;
-import org.xmlcml.cml.converters.registry.AbstractConverterModule;
-
-/**
- * @author Sam Adams
- */
-public class XYZModule extends AbstractConverterModule {
-
-	public static final MimeType XYZ_TYPE = new MimeType("chemical/x-xyz", ObjectType.TEXT, "xyz");
-	private static final String PREFIX = "xyz";
-	
-    public XYZModule(){
-    }
-    
-    public String getPrefix() {
-    	return PREFIX;
-    }
-
-	public List<Converter> getConverterList() {
-		if (converterList == null) {
-			converterList = new ArrayList<Converter>();
-			converterList.add(new XYZ2CMLConverter());
-			converterList.add(new CML2XYZConverter());
-		}
-		return converterList;
-	}
-
-	public List<MimeType> getMimeTypeList() {
-		if (mimeTypeList == null) {
-			mimeTypeList = new ArrayList<MimeType>();
-			mimeTypeList.add(XYZ_TYPE);
-		}
-		return mimeTypeList;
-	}
-	
-	
-}

jc-molecule-axyz/src/main/java/org/xmlcml/cml/converters/molecule/xyz/package-info.java

-/** 
-XYZ simple molecule format
-*/
-package org.xmlcml.cml.converters.molecule.xyz;

jc-molecule-axyz/src/main/resources/META-INF/jumbo-converters

-org.xmlcml.cml.converters.molecule.xyz.XYZModule;

jc-molecule-axyz/src/test/java/org/xmlcml/cml/converters/molecule/xyz/RegressionTest.java

-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-package org.xmlcml.cml.converters.molecule.xyz;
-
-
-import org.junit.Ignore;
-
-import org.junit.Test;
-import org.xmlcml.cml.converters.testutils.RegressionSuite;
-
-/**
- *
- * @author ojd20
- */
-public class RegressionTest {
-
-   @Test
-   @Ignore
-   public void xyz2cml() {
-      RegressionSuite.run("molecule/xyz/xyz2cml", "xyz", "cml",
-                          new XYZ2CMLConverter());
-   }
-
-   @Test
-   @Ignore
-   public void cml2xyz() {
-      RegressionSuite.run("molecule/xyz/cml2xyz", "cml", "xyz",
-                          new CML2XYZConverter());
-   }
-}

jc-molecule-xyz/.classpath

+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

jc-molecule-xyz/.project

+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>jc-molecule-xyz</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+	</natures>
+</projectDescription>

jc-molecule-xyz/.settings/org.eclipse.core.resources.prefs

+#Wed Feb 15 21:55:40 GMT 2012
+eclipse.preferences.version=1
+encoding//src/main/java=UTF-8
+encoding//src/main/resources=UTF-8
+encoding//src/test/java=UTF-8
+encoding//src/test/resources=UTF-8
+encoding/<project>=UTF-8

jc-molecule-xyz/.settings/org.eclipse.jdt.core.prefs

+#Sat Feb 11 21:06:58 GMT 2012
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.6

jc-molecule-xyz/.settings/org.eclipse.m2e.core.prefs

+#Wed Jan 04 18:20:05 GMT 2012
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1

jc-molecule-xyz/pom.xml

+<?xml version="1.0" encoding="UTF-8"?>
+<project
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.xml-cml.jc</groupId>
+		<artifactId>jc-molecule</artifactId>
+		<version>0.3-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>jc-molecule-xyz</artifactId>
+	<name>jc-molecule-xyz</name>
+
+	<dependencies>
+		<dependency>
+			<groupId>${jc.groupId}</groupId>
+			<artifactId>jc-top-core</artifactId>
+            <version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>${jc.groupId}</groupId>
+			<artifactId>jc-molecule-cml</artifactId>
+            <version>${project.version}</version>
+		</dependency>
+
+	</dependencies>
+</project>

jc-molecule-xyz/src/main/java/org/xmlcml/cml/converters/molecule/xyz/CML2XYZConverter.java

+package org.xmlcml.cml.converters.molecule.xyz;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import nu.xom.Element;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.xmlcml.cml.base.CMLBuilder;
+import org.xmlcml.cml.base.CMLElement;
+import org.xmlcml.cml.base.CMLElement.CoordinateType;
+import org.xmlcml.cml.converters.AbstractConverter;
+import org.xmlcml.cml.converters.Converter;
+import org.xmlcml.cml.converters.MimeType;
+import org.xmlcml.cml.converters.cml.CMLCommon;
+import org.xmlcml.cml.converters.cml.CMLSelector;
+import org.xmlcml.cml.element.CMLAtom;
+import org.xmlcml.cml.element.CMLMolecule;
+
+public class CML2XYZConverter extends AbstractConverter implements
+		Converter {
+
+	private static final Logger LOG = Logger.getLogger(CML2XYZConverter.class);
+	static {
+		LOG.setLevel(Level.INFO);
+	}
+	/**
+	 * converts a CML object to XYZ. assumes a single CMLMolecule as descendant
+	 * of root
+	 * 
+	 * @param xml
+	 */
+	@Override
+	public List<String> convertToText(Element xml) {
+		CMLElement cml = CMLBuilder.ensureCML(xml);
+		CMLMolecule molecule = new CMLSelector(cml).getToplevelMoleculeDescendant(true);
+		List<String> lines = new ArrayList<String>();
+		if (molecule != null) {
+			lines = convertToText(molecule);
+		}
+		return lines;
+	}
+
+	private List<String> convertToText(CMLMolecule molecule) {
+		if (!molecule.hasCoordinates(CoordinateType.CARTESIAN)) {
+			throw new RuntimeException("Molecule has no 3D coordinates");
+		}
+		List<String> lines = new ArrayList<String>();
+		lines.add(str(molecule.getAtomCount()));
+		lines.add(molecule.getTitle());
+		for (CMLAtom atom : molecule.getAtoms()) {
+			StringBuilder sb = new StringBuilder();
+			sb.append(atom.getElementType()).append(" ").append(
+					str(atom.getX3())).append(" ").append(str(atom.getY3()))
+					.append(" ").append(str(atom.getZ3()));
+			lines.add(sb.toString());
+		}
+		return lines;
+	}
+
+	public MimeType getInputType() {
+		return CMLCommon.CML_TYPE;
+	}
+	
+	public MimeType getOutputType() {
+		return XYZModule.XYZ_TYPE;
+	}
+	
+	public String getDescription() {
+		return "convert CML to XYZ";
+	}
+
+}

jc-molecule-xyz/src/main/java/org/xmlcml/cml/converters/molecule/xyz/XYZ2CMLConverter.java

+package org.xmlcml.cml.converters.molecule.xyz;
+
+import java.util.List;
+import java.util.StringTokenizer;
+
+import nu.xom.Element;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.xmlcml.cml.converters.AbstractConverter;
+import org.xmlcml.cml.converters.Converter;
+import org.xmlcml.cml.converters.MimeType;
+import org.xmlcml.cml.converters.cml.CMLCommon;
+import org.xmlcml.cml.element.CMLAtom;
+import org.xmlcml.cml.element.CMLCml;
+import org.xmlcml.cml.element.CMLMolecule;
+import org.xmlcml.euclid.Util;
+
+public class XYZ2CMLConverter extends AbstractConverter implements
+		Converter {
+
+	private static final Logger LOG = Logger.getLogger(XYZ2CMLConverter.class);
+	static {
+		LOG.setLevel(Level.INFO);
+	};
+	
+	
+	/**
+	 * converts an XYZ object to CML. returns cml:cml/cml:molecule
+	 * 
+	 * @param lines
+	 */
+	public Element convertToXML(List<String> lines) {
+		CMLMolecule molecule = new CMLMolecule();
+		int nline = 0;
+		int natoms = 0;
+		String s = lines.get(nline++);
+		try {
+			natoms = Integer.parseInt(s.trim());
+		} catch (NumberFormatException e) {
+			throw new RuntimeException("Bad atom count: " + s);
+		}
+
+		String title = lines.get(nline++);
+		molecule.setTitle(title);
+		for (int i = 0; i < natoms; i++) {
+			String line = lines.get(nline++);
+			if (line == null || line.trim().length() == 0) {
+				throw new RuntimeException("too few lines; ended after "
+						+ nline + "; expected " + natoms + 2);
+			}
+			CMLAtom atom = new CMLAtom();
+			atom.setId("a" + (i + 1));
+			StringTokenizer st = new StringTokenizer(line);
+			if (st.countTokens() != 4) {
+				throw new RuntimeException("Bad line (" + (i + 1)
+						+ ") - found (" + line + ")");
+			}
+			atom.setElementType(st.nextToken());
+			atom.setX3(Util.getDouble(st.nextToken()));
+			atom.setY3(Util.getDouble(st.nextToken()));
+			atom.setZ3(Util.getDouble(st.nextToken()));
+			molecule.addAtom(atom);
+		}
+		CMLCml cml = new CMLCml();
+		cml.appendChild(molecule);
+//		cml.debug("CML2XYZ");
+		return cml;
+	}
+
+	public MimeType getInputType() {
+		return XYZModule.XYZ_TYPE;
+	}
+	
+	public MimeType getOutputType() {
+		return CMLCommon.CML_TYPE;
+	}
+	
+	public String getDescription() {
+		return "convert XYZ to CML";
+	}
+
+}

jc-molecule-xyz/src/main/java/org/xmlcml/cml/converters/molecule/xyz/XYZModule.java

+package org.xmlcml.cml.converters.molecule.xyz;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.xmlcml.cml.converters.Converter;
+import org.xmlcml.cml.converters.MimeType;
+import org.xmlcml.cml.converters.MimeType.ObjectType;
+import org.xmlcml.cml.converters.registry.AbstractConverterModule;
+
+/**
+ * @author Sam Adams
+ */
+public class XYZModule extends AbstractConverterModule {
+
+	public static final MimeType XYZ_TYPE = new MimeType("chemical/x-xyz", ObjectType.TEXT, "xyz");
+	private static final String PREFIX = "xyz";
+	
+    public XYZModule(){
+    }
+    
+    public String getPrefix() {
+    	return PREFIX;
+    }
+
+	public List<Converter> getConverterList() {
+		if (converterList == null) {
+			converterList = new ArrayList<Converter>();
+			converterList.add(new XYZ2CMLConverter());
+			converterList.add(new CML2XYZConverter());
+		}
+		return converterList;
+	}
+
+	public List<MimeType> getMimeTypeList() {
+		if (mimeTypeList == null) {
+			mimeTypeList = new ArrayList<MimeType>();
+			mimeTypeList.add(XYZ_TYPE);
+		}
+		return mimeTypeList;
+	}
+	
+	
+}

jc-molecule-xyz/src/main/java/org/xmlcml/cml/converters/molecule/xyz/package-info.java

+/** 
+XYZ simple molecule format
+*/
+package org.xmlcml.cml.converters.molecule.xyz;

jc-molecule-xyz/src/main/resources/META-INF/jumbo-converters

+org.xmlcml.cml.converters.molecule.xyz.XYZModule

jc-molecule-xyz/src/test/java/org/xmlcml/cml/converters/molecule/xyz/RegressionTest.java

+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.xmlcml.cml.converters.molecule.xyz;
+
+
+import org.junit.Ignore;
+
+import org.junit.Test;
+import org.xmlcml.cml.converters.testutils.RegressionSuite;
+
+/**
+ *
+ * @author ojd20
+ */
+public class RegressionTest {
+
+   @Test
+   @Ignore
+   public void xyz2cml() {
+      RegressionSuite.run("molecule/xyz/xyz2cml", "xyz", "cml",
+                          new XYZ2CMLConverter());
+   }
+
+   @Test
+   @Ignore
+   public void cml2xyz() {
+      RegressionSuite.run("molecule/xyz/cml2xyz", "cml", "xyz",
+                          new CML2XYZConverter());
+   }
+}
 	</repositories>
 	
     <modules>
-        <module>jc-molecule-axyz</module>
+        <module>jc-molecule-xyz</module>
         <module>jc-molecule-cml</module>
         <module>jc-molecule-mdl</module>
         <module>jc-molecule-pubchem</module>
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.