From: Rajarshi G. <raj...@us...> - 2005-02-11 00:22:40
|
Update of /cvsroot/cdk/cdk/src/org/openscience/cdk/applications In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29548/src/org/openscience/cdk/applications Modified Files: DescriptorCalculator.java Log Message: Modified to allow the user to specify a comma seperated list of descriptor types Index: DescriptorCalculator.java =================================================================== RCS file: /cvsroot/cdk/cdk/src/org/openscience/cdk/applications/DescriptorCalculator.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- DescriptorCalculator.java 12 Jan 2005 15:20:44 -0000 1.4 +++ DescriptorCalculator.java 11 Feb 2005 00:22:32 -0000 1.5 @@ -58,6 +58,7 @@ private LoggingTool logger; private boolean inputIsSMILES; + private String[] descTypes = null; private PropertiesListener propsListener; private DescriptorEngine engine; @@ -69,8 +70,6 @@ ouputFormat = "cml"; inputIsSMILES = false; - engine = new DescriptorEngine(); - Properties props = new Properties(); props.setProperty("CMLIDs", "false"); props.setProperty("NamespacedOutput", "false"); @@ -78,12 +77,24 @@ propsListener = new PropertiesListener(props); } + private void initEngine() { + if (descTypes != null) { + engine = new DescriptorEngine(descTypes); + } else { + engine = new DescriptorEngine(); + } + } + public static void main(String[] args) { DescriptorCalculator calculator = new DescriptorCalculator(); // process options String fileToProcess = calculator.parseCommandLineOptions(args); + // create the engine specifying which descriptors to calculate + calculator.initEngine(); + + // calculate descriptors calculator.process(fileToProcess); } @@ -181,12 +192,11 @@ Options options = new Options(); options.addOption("h", "help", false, "give this help page"); - options.addOption( - OptionBuilder.withLongOpt("smiles"). - withDescription("input one SMILES string"). - create("s") - ); - + options.addOption("s","smiles", false, "input one SMILES string"); + options.addOption("t","type",true, + "specify which types of descriptor to calculate (comma seperated list). "+ + "Possible values are: constitutional, molecular, topological, geometrical, electronic"); + CommandLine line = null; try { CommandLineParser parser = new PosixParser(); @@ -194,15 +204,19 @@ } catch (ParseException exception) { System.err.println("Unexpected exception: " + exception.toString()); } + + if (line.hasOption("s") || line.hasOption("smiles")) { + inputIsSMILES = true; + } + if (line.hasOption("t") || line.hasOption("type")) { + String optvalue = line.getOptionValue("t"); + descTypes = optvalue.split(","); + } String[] filesToConvert = line.getArgs(); - - if (filesToConvert.length != 1 || line.hasOption("h")) { + if (filesToConvert.length != 1 || line.hasOption("h") || line.hasOption("help")) { printHelp(options); - } else if (line.hasOption("s")) { - inputIsSMILES = true; - } - + } return filesToConvert[0]; } |