X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Forg%2Fz3950%2Fzing%2Fcql%2FCQLGenerator.java;h=7cde23e845caa0fbaba4640668a9adcd23557f56;hb=b53fe47e0bd5f0825b0d8ceeb33538e714bf9e7e;hp=67e70d1b5f924a15e121e4804b001d19c0188aa1;hpb=caeab95a0bbe3a694746bb3244e6605c36927c1e;p=cql-java-moved-to-github.git diff --git a/src/org/z3950/zing/cql/CQLGenerator.java b/src/org/z3950/zing/cql/CQLGenerator.java index 67e70d1..7cde23e 100644 --- a/src/org/z3950/zing/cql/CQLGenerator.java +++ b/src/org/z3950/zing/cql/CQLGenerator.java @@ -1,4 +1,4 @@ -// $Id: CQLGenerator.java,v 1.2 2002-10-30 11:13:18 mike Exp $ +// $Id: CQLGenerator.java,v 1.7 2007-06-27 22:39:55 mike Exp $ package org.z3950.zing.cql; import java.util.Properties; @@ -18,11 +18,11 @@ import java.io.FileNotFoundException; * the parser of your choice, and check that the XCQL it comes up with * is the same what you got from your initial rendering. *
- * This code is based on the grammar in the Grammar file of + * This code is based on the same grammar as the CQLParser class in * this distribution - there is a generate_x() method * for each grammar element X. * - * @version $Id: CQLGenerator.java,v 1.2 2002-10-30 11:13:18 mike Exp $ + * @version $Id: CQLGenerator.java,v 1.7 2007-06-27 22:39:55 mike Exp $ * @see http://zing.z3950.org/cql/index.html */ @@ -64,7 +64,7 @@ public class CQLGenerator { * [mandatory] A floating-point number between 0.0 and 1.0, * indicating the probability for each search-clause * node that it will be expanded into a full sub-query rather - * than a [ qualifier relation ] term triplet. + * than an [ index relation ] term triplet. *
* *
* It generates a single random query using the parameters - * specified in a nominated properties file, and decompiles it - * into CQL which is written to standard output. + * specified in a nominated properties file, plus any additional + * name value pairs provided on the command-line, and + * decompiles it into CQL which is written to standard output. *
* For example, - * java org.z3950.zing.cql.CQLGenerator etc/generate.properties + * java org.z3950.zing.cql.CQLGenerator + * etc/generate.properties seed 18398, * where the file generate.properties contains:
- * seed=18398 * complexQuery=0.4 * complexClause=0.4 * equalsRelation=0.5 @@ -281,25 +283,32 @@ public class CQLGenerator { * @param configFile * The name of a properties file from which to read the * configuration parameters (see above). + * @param name + * The name of a configuration parameter. + * @param value + * The value to assign to the configuration parameter named in + * the immediately preceding command-line argument. * @return * A CQL query expressed in a form that should be comprehensible * to all conformant CQL compilers. */ public static void main (String[] args) throws Exception { - if (args.length != 1) { - System.err.println("Usage: CQLGenerator"); + if (args.length % 2 != 1) { + System.err.println("Usage: CQLGenerator "+ + "[ ]..."); System.exit(1); } String configFile = args[0]; InputStream f = new FileInputStream(configFile); if (f == null) - throw new FileNotFoundException("getResourceAsStream(" + - configFile + ")"); + throw new FileNotFoundException(configFile); Properties params = new Properties(); params.load(f); f.close(); + for (int i = 1; i < args.length; i += 2) + params.setProperty(args[i], args[i+1]); CQLGenerator generator = new CQLGenerator(params); CQLNode tree = generator.generate();