Changeset: 049ee53155f7 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=049ee53155f7
Modified Files:
java/src/nl/cwi/monetdb/util/CmdLineOpts.java
java/src/nl/cwi/monetdb/util/Exporter.java
java/src/nl/cwi/monetdb/util/Extract.java
java/src/nl/cwi/monetdb/util/SQLExporter.java
java/src/nl/cwi/monetdb/util/SQLRestore.java
java/src/nl/cwi/monetdb/util/XMLExporter.java
Branch: Apr2012
Log Message:
util: misc cosmetic and performance improvements
- use stronger typing
- use easier collections looping
- cosmetic: use return without parenthesis
- use StringBuilder for performance
- use Arrays.fill instead of manual loop
diffs (truncated from 426 to 300 lines):
diff --git a/java/src/nl/cwi/monetdb/util/CmdLineOpts.java
b/java/src/nl/cwi/monetdb/util/CmdLineOpts.java
--- a/java/src/nl/cwi/monetdb/util/CmdLineOpts.java
+++ b/java/src/nl/cwi/monetdb/util/CmdLineOpts.java
@@ -24,9 +24,9 @@ import java.io.*;
public class CmdLineOpts {
/** the arguments we handle */
- private Map opts = new HashMap();
+ private Map<String, OptionContainer> opts = new HashMap<String,
OptionContainer>();
/** the options themself */
- private List options = new ArrayList();
+ private List<OptionContainer> options = new
ArrayList<OptionContainer>();
/** no arguments */
public static int CAR_ZERO = 0;
@@ -48,8 +48,7 @@ public class CmdLineOpts {
int type,
String defaulta,
String descriptiona)
- throws OptionsException
- {
+ throws OptionsException {
OptionContainer oc =
new OptionContainer(
shorta,
@@ -63,19 +62,19 @@ public class CmdLineOpts {
}
public void removeOption(String name) {
- OptionContainer oc = null;
- if ((oc = (OptionContainer)(opts.get(name))) != null) {
+ OptionContainer oc = opts.get(name);
+ if (oc != null) {
opts.remove(oc.shorta);
opts.remove(oc.longa);
}
}
public OptionContainer getOption(String key) throws OptionsException {
- OptionContainer ret = (OptionContainer)(opts.get(key));
+ OptionContainer ret = opts.get(key);
if (ret == null) throw
new OptionsException("No such option: " + key);
- return(ret);
+ return ret;
}
public void processFile(File file) throws OptionsException {
@@ -83,12 +82,15 @@ public class CmdLineOpts {
Properties prop = new Properties();
try {
FileInputStream in = new FileInputStream(file);
- prop.load(in);
- in.close();
+ try {
+ prop.load(in);
+ } finally {
+ in.close();
+ }
- for (Enumeration e = prop.propertyNames();
e.hasMoreElements(); ) {
- String key = (String)(e.nextElement());
- OptionContainer option =
((OptionContainer)opts.get(key));
+ for (Enumeration<?> e = prop.propertyNames();
e.hasMoreElements(); ) {
+ String key = (String) e.nextElement();
+ OptionContainer option = opts.get(key);
if (option == null) throw
new OptionsException("Unknown option: "
+ key);
option.resetArguments();
@@ -203,12 +205,9 @@ public class CmdLineOpts {
* @return the help message
*/
public String produceHelpMessage() {
- List ocs = options;
-
// first calculate how much space is necessary for the options
int maxlen = 0;
- for (int i = 0; i < ocs.size(); i++) {
- OptionContainer oc = (OptionContainer)(ocs.get(i));
+ for (OptionContainer oc : options) {
String shorta = oc.getShort();
String longa = oc.getLong();
int len = 0;
@@ -219,13 +218,12 @@ public class CmdLineOpts {
}
// get the individual strings
- StringBuffer ret = new StringBuffer();
- for (int i = 0; i < ocs.size(); i++) {
- OptionContainer oc = (OptionContainer)(ocs.get(i));
+ StringBuilder ret = new StringBuilder();
+ for (OptionContainer oc : options) {
ret.append(produceHelpMessage(oc, maxlen));
}
- return(ret.toString());
+ return ret.toString();
}
/**
@@ -240,7 +238,7 @@ public class CmdLineOpts {
*/
public String produceHelpMessage(OptionContainer oc, int indentwidth) {
String desc = oc.getDescription();
- if (desc == null) return("");
+ if (desc == null) return "";
String shorta = oc.getShort();
String longa = oc.getLong();
@@ -252,7 +250,7 @@ public class CmdLineOpts {
// default to with of command line flags if no width given
if (indentwidth <= 0) indentwidth = optwidth;
- StringBuffer ret = new StringBuffer();
+ StringBuilder ret = new StringBuilder();
// add the command line flags
if (shorta != null) ret.append('-').append(shorta).append(' ');
@@ -287,14 +285,14 @@ public class CmdLineOpts {
lastpos = pos;
}
- return(ret.toString());
+ return ret.toString();
}
public class OptionContainer {
int cardinality;
String shorta;
String longa;
- List values;
+ List<String> values = new ArrayList<String>();
String name;
String defaulta;
String descriptiona;
@@ -328,19 +326,12 @@ public class CmdLineOpts {
if ((cardinality == CAR_ZERO ||
cardinality == CAR_ZERO_ONE ||
cardinality == CAR_ZERO_MANY) &&
- defaulta != null)
- {
+ defaulta != null) {
throw new IllegalArgumentException("cannot
specify a default for a (possible) zero argument option");
}
- values = new ArrayList();
-
- if (longa != null) {
- name = longa;
- } else {
- name = shorta;
- }
-
+ name = (longa != null) ? longa : shorta;
+
options.add(this);
}
@@ -353,8 +344,7 @@ public class CmdLineOpts {
throw new OptionsException("option " + name + "
does not allow arguments");
} else if ((cardinality == CAR_ONE ||
cardinality == CAR_ZERO_ONE) &&
- values.size() >= 1)
- {
+ values.size() >= 1) {
throw new OptionsException("option " + name + "
does at max allow only one argument");
}
// we can add it
@@ -367,43 +357,43 @@ public class CmdLineOpts {
}
public boolean isPresent() {
- return(present);
+ return present;
}
public int getCardinality() {
- return(cardinality);
+ return cardinality;
}
public int getArgumentCount() {
- return(values.size());
+ return values.size();
}
public String getArgument() {
String ret = getArgument(1);
if (ret == null) ret = defaulta;
- return(ret);
+ return ret;
}
public String getArgument(int index) {
String[] args = getArguments();
- if (index < 1 || index > args.length) return(null);
- return(args[index - 1]);
+ if (index < 1 || index > args.length) return null;
+ return args[index - 1];
}
public String[] getArguments() {
- return((String[])(values.toArray(new
String[values.size()])));
+ return values.toArray(new String[values.size()]);
}
public String getShort() {
- return(shorta);
+ return shorta;
}
public String getLong() {
- return(longa);
+ return longa;
}
public String getDescription() {
- return(descriptiona);
+ return descriptiona;
}
}
}
diff --git a/java/src/nl/cwi/monetdb/util/Exporter.java
b/java/src/nl/cwi/monetdb/util/Exporter.java
--- a/java/src/nl/cwi/monetdb/util/Exporter.java
+++ b/java/src/nl/cwi/monetdb/util/Exporter.java
@@ -21,6 +21,7 @@ package nl.cwi.monetdb.util;
import java.io.*;
import java.sql.*;
+import java.util.Arrays;
public abstract class Exporter {
@@ -57,7 +58,7 @@ public abstract class Exporter {
* @return the quoted string
*/
protected static String dq(String in) {
- return("\"" + in.replaceAll("\\\\",
"\\\\\\\\").replaceAll("\"", "\\\\\"") + "\"");
+ return "\"" + in.replaceAll("\\\\",
"\\\\\\\\").replaceAll("\"", "\\\\\"") + "\"";
}
/**
@@ -68,7 +69,7 @@ public abstract class Exporter {
* @return the quoted string
*/
protected static String q(String in) {
- return("'" + in.replaceAll("\\\\", "\\\\\\\\").replaceAll("'",
"\\\\'") + "'");
+ return "'" + in.replaceAll("\\\\", "\\\\\\\\").replaceAll("'",
"\\\\'") + "'";
}
/**
@@ -80,9 +81,8 @@ public abstract class Exporter {
* @return a String holding cnt times chr
*/
protected static String repeat(char chr, int cnt) {
- if (cnt < 0) return("");
- StringBuffer sb = new StringBuffer(cnt);
- for (int i = 0; i < cnt; i++) sb.append(chr);
- return(sb.toString());
+ char[] buf = new char[cnt];
+ Arrays.fill(buf, chr);
+ return new String(buf);
}
}
diff --git a/java/src/nl/cwi/monetdb/util/Extract.java
b/java/src/nl/cwi/monetdb/util/Extract.java
--- a/java/src/nl/cwi/monetdb/util/Extract.java
+++ b/java/src/nl/cwi/monetdb/util/Extract.java
@@ -19,8 +19,12 @@
package nl.cwi.monetdb.util;
-import java.io.*;
-import java.net.*;
+import java.io.BufferedReader;
+import java.io.FileNotFoundException;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
/**
diff --git a/java/src/nl/cwi/monetdb/util/SQLExporter.java
b/java/src/nl/cwi/monetdb/util/SQLExporter.java
--- a/java/src/nl/cwi/monetdb/util/SQLExporter.java
+++ b/java/src/nl/cwi/monetdb/util/SQLExporter.java
@@ -19,13 +19,23 @@
package nl.cwi.monetdb.util;
-import java.io.*;
-import java.sql.*;
-import java.util.*;
+import java.io.PrintWriter;
+import java.sql.DatabaseMetaData;
+import java.sql.ResultSet;
+import java.sql.ResultSetMetaData;
+import java.sql.SQLException;
+import java.sql.Types;
+import java.util.Iterator;
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list