From: Egon W. <eg...@us...> - 2005-03-31 19:03:43
|
Update of /cvsroot/cdk/cdk-taverna/src/org/openscience/cdk/applications/taverna In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10652/src/org/openscience/cdk/applications/taverna Added Files: ParseSmiles.java Log Message: Added example local worker used for presentation at CUBIC 2005-03-29 --- NEW FILE: ParseSmiles.java --- /** * This file is licensed under the GNU GPL. * Copyright Egon Willighagen */ package org.openscience.cdk.applications.taverna; import org.embl.ebi.escience.scuflworkers.java.LocalWorker; import org.embl.ebi.escience.baclava.DataThing; import uk.ac.soton.itinnovation.taverna.enactor.entities.TaskExecutionException; import java.util.*; import java.io.*; import org.openscience.cdk.smiles.SmilesParser; import org.openscience.cdk.io.MDLWriter; /** * @author Egon Willighagen */ public class ParseSmiles implements LocalWorker { public String[] inputNames() { return new String[]{"smilesList"}; } public String[] inputTypes() { return new String[]{"l('text/plain')"}; } public String[] outputNames() { return new String[]{"connectionTables"}; } public String[] outputTypes() { return new String[]{"l('text/plain')"}; } public Map execute(Map inputs) throws TaskExecutionException { List inputList = (List)((DataThing)(inputs.get("smilesList"))).getDataObject(); SmilesParser parser = new SmilesParser(); List outputList = new ArrayList(); for (Iterator i = inputList.iterator(); i.hasNext(); ) { Object nextObj = i.next(); System.out.println("Class of i.next(): " + nextObj.getClass()); String item = (String)nextObj; try { StringWriter outputString = new StringWriter(); MDLWriter writer = new MDLWriter(outputString); writer.write(parser.parseSmiles(item)); outputList.add(outputString.toString()); } catch (Exception exception) { throw new TaskExecutionException("Error while parsing SMILES (" + item + "): " + exception.getMessage()); } } Map outputs = new HashMap(); outputs.put("connectionTables",new DataThing(outputList)); return outputs; } } |