diff --git a/pom.xml b/pom.xml
index 89d832ea..0afb4a5b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -56,6 +56,11 @@
prtree
1.4
+
+ net.sf.opencsv
+ opencsv
+ 2.0
+
@@ -112,6 +117,30 @@
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 1.4
+
+
+ package
+
+ shade
+
+
+
+
+
+ net.sf.opencsv:opencsv
+
+
+
+
+
+
+
maven-assembly-plugin
diff --git a/src/main/java/au/com/bytecode/opencsv/CSVParser.java b/src/main/java/au/com/bytecode/opencsv/CSVParser.java
deleted file mode 100644
index 1d3c7bd1..00000000
--- a/src/main/java/au/com/bytecode/opencsv/CSVParser.java
+++ /dev/null
@@ -1,307 +0,0 @@
-/**
- Copyright 2005 Bytecode Pty Ltd.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
-
-package au.com.bytecode.opencsv;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * A very simple CSV parser released under a commercial-friendly license.
- * This just implements splitting a single line into fields.
- *
- * @author Glen Smith
- * @author Rainer Pruy
- *
- */
-public class CSVParser {
-
- private final char separator;
-
- private final char quotechar;
-
- private final char escape;
-
- private final boolean strictQuotes;
-
- private String pending;
- private boolean inField = false;
-
- private final boolean ignoreLeadingWhiteSpace;
-
- /** The default separator to use if none is supplied to the constructor. */
- public static final char DEFAULT_SEPARATOR = ',';
-
- public static final int INITIAL_READ_SIZE = 128;
-
- /**
- * The default quote character to use if none is supplied to the
- * constructor.
- */
- public static final char DEFAULT_QUOTE_CHARACTER = '"';
-
-
- /**
- * The default escape character to use if none is supplied to the
- * constructor.
- */
- public static final char DEFAULT_ESCAPE_CHARACTER = '\\';
-
- /**
- * The default strict quote behavior to use if none is supplied to the
- * constructor
- */
- public static final boolean DEFAULT_STRICT_QUOTES = false;
-
- /**
- * The default leading whitespace behavior to use if none is supplied to the
- * constructor
- */
- public static final boolean DEFAULT_IGNORE_LEADING_WHITESPACE = true;
-
- /**
- * Constructs CSVParser using a comma for the separator.
- */
- public CSVParser() {
- this(DEFAULT_SEPARATOR, DEFAULT_QUOTE_CHARACTER, DEFAULT_ESCAPE_CHARACTER);
- }
-
- /**
- * Constructs CSVParser with supplied separator.
- * @param separator
- * the delimiter to use for separating entries.
- */
- public CSVParser(char separator) {
- this(separator, DEFAULT_QUOTE_CHARACTER, DEFAULT_ESCAPE_CHARACTER);
- }
-
-
-
- /**
- * Constructs CSVParser with supplied separator and quote char.
- * @param separator
- * the delimiter to use for separating entries
- * @param quotechar
- * the character to use for quoted elements
- */
- public CSVParser(char separator, char quotechar) {
- this(separator, quotechar, DEFAULT_ESCAPE_CHARACTER);
- }
-
- /**
- * Constructs CSVReader with supplied separator and quote char.
- * @param separator
- * the delimiter to use for separating entries
- * @param quotechar
- * the character to use for quoted elements
- * @param escape
- * the character to use for escaping a separator or quote
- */
- public CSVParser(char separator, char quotechar, char escape) {
- this(separator, quotechar, escape, DEFAULT_STRICT_QUOTES);
- }
-
- /**
- * Constructs CSVReader with supplied separator and quote char.
- * Allows setting the "strict quotes" flag
- * @param separator
- * the delimiter to use for separating entries
- * @param quotechar
- * the character to use for quoted elements
- * @param escape
- * the character to use for escaping a separator or quote
- * @param strictQuotes
- * if true, characters outside the quotes are ignored
- */
- public CSVParser(char separator, char quotechar, char escape, boolean strictQuotes) {
- this(separator, quotechar, escape, strictQuotes, DEFAULT_IGNORE_LEADING_WHITESPACE);
- }
-
- /**
- * Constructs CSVReader with supplied separator and quote char.
- * Allows setting the "strict quotes" and "ignore leading whitespace" flags
- * @param separator
- * the delimiter to use for separating entries
- * @param quotechar
- * the character to use for quoted elements
- * @param escape
- * the character to use for escaping a separator or quote
- * @param strictQuotes
- * if true, characters outside the quotes are ignored
- * @param ignoreLeadingWhiteSpace
- * if true, white space in front of a quote in a field is ignored
- */
- public CSVParser(char separator, char quotechar, char escape, boolean strictQuotes, boolean ignoreLeadingWhiteSpace) {
- this.separator = separator;
- this.quotechar = quotechar;
- this.escape = escape;
- this.strictQuotes = strictQuotes;
- this.ignoreLeadingWhiteSpace = ignoreLeadingWhiteSpace;
- }
- /**
- *
- * @return true if something was left over from last call(s)
- */
- public boolean isPending() {
- return pending != null;
- }
-
- public String[] parseLineMulti(String nextLine) throws IOException {
- return parseLine(nextLine, true);
- }
-
- public String[] parseLine(String nextLine) throws IOException {
- return parseLine(nextLine, false);
- }
- /**
- * Parses an incoming String and returns an array of elements.
- *
- * @param nextLine
- * the string to parse
- * @param multi
- * @return the comma-tokenized list of elements, or null if nextLine is null
- * @throws IOException if bad things happen during the read
- */
- private String[] parseLine(String nextLine, boolean multi) throws IOException {
-
- if (!multi && pending != null) {
- pending = null;
- }
-
- if (nextLine == null) {
- if (pending != null) {
- String s = pending;
- pending = null;
- return new String[] {s};
- } else {
- return null;
- }
- }
-
- ListtokensOnThisLine = new ArrayList();
- StringBuilder sb = new StringBuilder(INITIAL_READ_SIZE);
- boolean inQuotes = false;
- if (pending != null) {
- sb.append(pending);
- pending = null;
- inQuotes = true;
- }
- for (int i = 0; i < nextLine.length(); i++) {
-
- char c = nextLine.charAt(i);
- if (c == this.escape) {
- if( isNextCharacterEscapable(nextLine, inQuotes || inField, i) ){
- sb.append(nextLine.charAt(i+1));
- i++;
- }
- } else if (c == quotechar) {
- if( isNextCharacterEscapedQuote(nextLine, inQuotes || inField, i) ){
- sb.append(nextLine.charAt(i+1));
- i++;
- }else{
- inQuotes = !inQuotes;
-
- // the tricky case of an embedded quote in the middle: a,bc"d"ef,g
- if (!strictQuotes) {
- if(i>2 //not on the beginning of the line
- && nextLine.charAt(i-1) != this.separator //not at the beginning of an escape sequence
- && nextLine.length()>(i+1) &&
- nextLine.charAt(i+1) != this.separator //not at the end of an escape sequence
- ){
-
- if (ignoreLeadingWhiteSpace && sb.length() > 0 && isAllWhiteSpace(sb)) {
- sb = new StringBuilder(INITIAL_READ_SIZE); //discard white space leading up to quote
- } else {
- sb.append(c);
- }
-
- }
- }
- }
- inField = !inField;
- } else if (c == separator && !inQuotes) {
- tokensOnThisLine.add(sb.toString());
- sb = new StringBuilder(INITIAL_READ_SIZE); // start work on next token
- inField = false;
- } else {
- if (!strictQuotes || inQuotes){
- sb.append(c);
- inField = true;
- }
- }
- }
- // line is done - check status
- if (inQuotes) {
- if (multi) {
- // continuing a quoted section, re-append newline
- sb.append("\n");
- pending = sb.toString();
- sb = null; // this partial content is not to be added to field list yet
- } else {
- throw new IOException("Un-terminated quoted field at end of CSV line");
- }
- }
- if (sb != null) {
- tokensOnThisLine.add(sb.toString());
- }
- return tokensOnThisLine.toArray(new String[tokensOnThisLine.size()]);
-
- }
-
- /**
- * precondition: the current character is a quote or an escape
- * @param nextLine the current line
- * @param inQuotes true if the current context is quoted
- * @param i current index in line
- * @return true if the following character is a quote
- */
- private boolean isNextCharacterEscapedQuote(String nextLine, boolean inQuotes, int i) {
- return inQuotes // we are in quotes, therefore there can be escaped quotes in here.
- && nextLine.length() > (i+1) // there is indeed another character to check.
- && nextLine.charAt(i+1) == quotechar;
- }
-
- /**
- * precondition: the current character is an escape
- * @param nextLine the current line
- * @param inQuotes true if the current context is quoted
- * @param i current index in line
- * @return true if the following character is a quote
- */
- protected boolean isNextCharacterEscapable(String nextLine, boolean inQuotes, int i) {
- return inQuotes // we are in quotes, therefore there can be escaped quotes in here.
- && nextLine.length() > (i+1) // there is indeed another character to check.
- && ( nextLine.charAt(i+1) == quotechar || nextLine.charAt(i+1) == this.escape);
- }
-
- /**
- * precondition: sb.length() > 0
- * @param sb A sequence of characters to examine
- * @return true if every character in the sequence is whitespace
- */
- protected boolean isAllWhiteSpace(CharSequence sb) {
- boolean result = true;
- for (int i = 0; i < sb.length(); i++) {
- char c = sb.charAt(i);
-
- if ( !Character.isWhitespace(c) ) {
- return false;
- }
- }
- return result;
- }
-}
diff --git a/src/main/java/au/com/bytecode/opencsv/CSVReader.java b/src/main/java/au/com/bytecode/opencsv/CSVReader.java
deleted file mode 100644
index c24ba5cc..00000000
--- a/src/main/java/au/com/bytecode/opencsv/CSVReader.java
+++ /dev/null
@@ -1,282 +0,0 @@
-/**
- Copyright 2005 Bytecode Pty Ltd.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
-
-package au.com.bytecode.opencsv;
-
-import java.io.BufferedReader;
-import java.io.Closeable;
-import java.io.IOException;
-import java.io.Reader;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * A very simple CSV reader released under a commercial-friendly license.
- *
- * @author Glen Smith
- *
- */
-public class CSVReader implements Closeable {
-
- private BufferedReader br;
-
- private boolean hasNext = true;
-
- private CSVParser parser;
-
- private int skipLines;
-
- private boolean linesSkiped;
-
- /**
- * The default line to start reading.
- */
- public static final int DEFAULT_SKIP_LINES = 0;
-
- /**
- * Constructs CSVReader using a comma for the separator.
- *
- * @param reader
- * the reader to an underlying CSV source.
- */
- public CSVReader(Reader reader) {
- this(reader, CSVParser.DEFAULT_SEPARATOR, CSVParser.DEFAULT_QUOTE_CHARACTER, CSVParser.DEFAULT_ESCAPE_CHARACTER);
- }
-
- /**
- * Constructs CSVReader with supplied separator.
- *
- * @param reader
- * the reader to an underlying CSV source.
- * @param separator
- * the delimiter to use for separating entries.
- */
- public CSVReader(Reader reader, char separator) {
- this(reader, separator, CSVParser.DEFAULT_QUOTE_CHARACTER, CSVParser.DEFAULT_ESCAPE_CHARACTER);
- }
-
- /**
- * Constructs CSVReader with supplied separator and quote char.
- *
- * @param reader
- * the reader to an underlying CSV source.
- * @param separator
- * the delimiter to use for separating entries
- * @param quotechar
- * the character to use for quoted elements
- */
- public CSVReader(Reader reader, char separator, char quotechar) {
- this(reader, separator, quotechar, CSVParser.DEFAULT_ESCAPE_CHARACTER, DEFAULT_SKIP_LINES, CSVParser.DEFAULT_STRICT_QUOTES);
- }
-
- /**
- * Constructs CSVReader with supplied separator, quote char and quote handling
- * behavior.
- *
- * @param reader
- * the reader to an underlying CSV source.
- * @param separator
- * the delimiter to use for separating entries
- * @param quotechar
- * the character to use for quoted elements
- * @param strictQuotes
- * sets if characters outside the quotes are ignored
- */
- public CSVReader(Reader reader, char separator, char quotechar, boolean strictQuotes) {
- this(reader, separator, quotechar, CSVParser.DEFAULT_ESCAPE_CHARACTER, DEFAULT_SKIP_LINES, strictQuotes);
- }
-
- /**
- * Constructs CSVReader with supplied separator and quote char.
- *
- * @param reader
- * the reader to an underlying CSV source.
- * @param separator
- * the delimiter to use for separating entries
- * @param quotechar
- * the character to use for quoted elements
- * @param escape
- * the character to use for escaping a separator or quote
- */
-
- public CSVReader(Reader reader, char separator,
- char quotechar, char escape) {
- this(reader, separator, quotechar, escape, DEFAULT_SKIP_LINES, CSVParser.DEFAULT_STRICT_QUOTES);
- }
-
- /**
- * Constructs CSVReader with supplied separator and quote char.
- *
- * @param reader
- * the reader to an underlying CSV source.
- * @param separator
- * the delimiter to use for separating entries
- * @param quotechar
- * the character to use for quoted elements
- * @param line
- * the line number to skip for start reading
- */
- public CSVReader(Reader reader, char separator, char quotechar, int line) {
- this(reader, separator, quotechar, CSVParser.DEFAULT_ESCAPE_CHARACTER, line, CSVParser.DEFAULT_STRICT_QUOTES);
- }
-
- /**
- * Constructs CSVReader with supplied separator and quote char.
- *
- * @param reader
- * the reader to an underlying CSV source.
- * @param separator
- * the delimiter to use for separating entries
- * @param quotechar
- * the character to use for quoted elements
- * @param escape
- * the character to use for escaping a separator or quote
- * @param line
- * the line number to skip for start reading
- */
- public CSVReader(Reader reader, char separator, char quotechar, char escape, int line) {
- this(reader, separator, quotechar, escape, line, CSVParser.DEFAULT_STRICT_QUOTES);
- }
-
- /**
- * Constructs CSVReader with supplied separator and quote char.
- *
- * @param reader
- * the reader to an underlying CSV source.
- * @param separator
- * the delimiter to use for separating entries
- * @param quotechar
- * the character to use for quoted elements
- * @param escape
- * the character to use for escaping a separator or quote
- * @param line
- * the line number to skip for start reading
- * @param strictQuotes
- * sets if characters outside the quotes are ignored
- */
- public CSVReader(Reader reader, char separator, char quotechar, char escape, int line, boolean strictQuotes) {
- this(reader, separator, quotechar, escape, line, strictQuotes, CSVParser.DEFAULT_IGNORE_LEADING_WHITESPACE);
- }
-
- /**
- * Constructs CSVReader with supplied separator and quote char.
- *
- * @param reader
- * the reader to an underlying CSV source.
- * @param separator
- * the delimiter to use for separating entries
- * @param quotechar
- * the character to use for quoted elements
- * @param escape
- * the character to use for escaping a separator or quote
- * @param line
- * the line number to skip for start reading
- * @param strictQuotes
- * sets if characters outside the quotes are ignored
- * @param ignoreLeadingWhiteSpace
- * it true, parser should ignore white space before a quote in a field
- */
- public CSVReader(Reader reader, char separator, char quotechar, char escape, int line, boolean strictQuotes, boolean ignoreLeadingWhiteSpace) {
- this.br = new BufferedReader(reader);
- this.parser = new CSVParser(separator, quotechar, escape, strictQuotes, ignoreLeadingWhiteSpace);
- this.skipLines = line;
- }
-
- /**
- * Reads the entire file into a List with each element being a String[] of
- * tokens.
- *
- * @return a List of String[], with each String[] representing a line of the
- * file.
- *
- * @throws IOException
- * if bad things happen during the read
- */
- public List readAll() throws IOException {
-
- List allElements = new ArrayList();
- while (hasNext) {
- String[] nextLineAsTokens = readNext();
- if (nextLineAsTokens != null)
- allElements.add(nextLineAsTokens);
- }
- return allElements;
-
- }
-
- /**
- * Reads the next line from the buffer and converts to a string array.
- *
- * @return a string array with each comma-separated element as a separate
- * entry.
- *
- * @throws IOException
- * if bad things happen during the read
- */
- public String[] readNext() throws IOException {
-
- String[] result = null;
- do {
- String nextLine = getNextLine();
- if (!hasNext) {
- return result; // should throw if still pending?
- }
- String[] r = parser.parseLineMulti(nextLine);
- if (r.length > 0) {
- if (result == null) {
- result = r;
- } else {
- String[] t = new String[result.length+r.length];
- System.arraycopy(result, 0, t, 0, result.length);
- System.arraycopy(r, 0, t, result.length, r.length);
- result = t;
- }
- }
- } while (parser.isPending());
- return result;
- }
-
- /**
- * Reads the next line from the file.
- *
- * @return the next line from the file without trailing newline
- * @throws IOException
- * if bad things happen during the read
- */
- private String getNextLine() throws IOException {
- if (!this.linesSkiped) {
- for (int i = 0; i < skipLines; i++) {
- br.readLine();
- }
- this.linesSkiped = true;
- }
- String nextLine = br.readLine();
- if (nextLine == null) {
- hasNext = false;
- }
- return hasNext ? nextLine : null;
- }
-
- /**
- * Closes the underlying reader.
- *
- * @throws IOException if the close fails
- */
- public void close() throws IOException{
- br.close();
- }
-
-}
diff --git a/src/main/java/au/com/bytecode/opencsv/CSVWriter.java b/src/main/java/au/com/bytecode/opencsv/CSVWriter.java
deleted file mode 100644
index fcb2bc7f..00000000
--- a/src/main/java/au/com/bytecode/opencsv/CSVWriter.java
+++ /dev/null
@@ -1,302 +0,0 @@
-/**
- Copyright 2005 Bytecode Pty Ltd.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
-
-package au.com.bytecode.opencsv;
-
-import java.io.Closeable;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.Writer;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.List;
-
-/**
- * A very simple CSV writer released under a commercial-friendly license.
- *
- * @author Glen Smith
- *
- */
-public class CSVWriter implements Closeable {
-
- public static final int INITIAL_STRING_SIZE = 128;
-
- private Writer rawWriter;
-
- private PrintWriter pw;
-
- private char separator;
-
- private char quotechar;
-
- private char escapechar;
-
- private String lineEnd;
-
- /** The character used for escaping quotes. */
- public static final char DEFAULT_ESCAPE_CHARACTER = '"';
-
- /** The default separator to use if none is supplied to the constructor. */
- public static final char DEFAULT_SEPARATOR = ',';
-
- /**
- * The default quote character to use if none is supplied to the
- * constructor.
- */
- public static final char DEFAULT_QUOTE_CHARACTER = '"';
-
- /** The quote constant to use when you wish to suppress all quoting. */
- public static final char NO_QUOTE_CHARACTER = '\u0000';
-
- /** The escape constant to use when you wish to suppress all escaping. */
- public static final char NO_ESCAPE_CHARACTER = '\u0000';
-
- /** Default line terminator uses platform encoding. */
- public static final String DEFAULT_LINE_END = "\n";
-
- private ResultSetHelper resultService = new ResultSetHelperService();
-
- /**
- * Constructs CSVWriter using a comma for the separator.
- *
- * @param writer
- * the writer to an underlying CSV source.
- */
- public CSVWriter(Writer writer) {
- this(writer, DEFAULT_SEPARATOR);
- }
-
- /**
- * Constructs CSVWriter with supplied separator.
- *
- * @param writer
- * the writer to an underlying CSV source.
- * @param separator
- * the delimiter to use for separating entries.
- */
- public CSVWriter(Writer writer, char separator) {
- this(writer, separator, DEFAULT_QUOTE_CHARACTER);
- }
-
- /**
- * Constructs CSVWriter with supplied separator and quote char.
- *
- * @param writer
- * the writer to an underlying CSV source.
- * @param separator
- * the delimiter to use for separating entries
- * @param quotechar
- * the character to use for quoted elements
- */
- public CSVWriter(Writer writer, char separator, char quotechar) {
- this(writer, separator, quotechar, DEFAULT_ESCAPE_CHARACTER);
- }
-
- /**
- * Constructs CSVWriter with supplied separator and quote char.
- *
- * @param writer
- * the writer to an underlying CSV source.
- * @param separator
- * the delimiter to use for separating entries
- * @param quotechar
- * the character to use for quoted elements
- * @param escapechar
- * the character to use for escaping quotechars or escapechars
- */
- public CSVWriter(Writer writer, char separator, char quotechar, char escapechar) {
- this(writer, separator, quotechar, escapechar, DEFAULT_LINE_END);
- }
-
-
- /**
- * Constructs CSVWriter with supplied separator and quote char.
- *
- * @param writer
- * the writer to an underlying CSV source.
- * @param separator
- * the delimiter to use for separating entries
- * @param quotechar
- * the character to use for quoted elements
- * @param lineEnd
- * the line feed terminator to use
- */
- public CSVWriter(Writer writer, char separator, char quotechar, String lineEnd) {
- this(writer, separator, quotechar, DEFAULT_ESCAPE_CHARACTER, lineEnd);
- }
-
-
-
- /**
- * Constructs CSVWriter with supplied separator, quote char, escape char and line ending.
- *
- * @param writer
- * the writer to an underlying CSV source.
- * @param separator
- * the delimiter to use for separating entries
- * @param quotechar
- * the character to use for quoted elements
- * @param escapechar
- * the character to use for escaping quotechars or escapechars
- * @param lineEnd
- * the line feed terminator to use
- */
- public CSVWriter(Writer writer, char separator, char quotechar, char escapechar, String lineEnd) {
- this.rawWriter = writer;
- this.pw = new PrintWriter(writer);
- this.separator = separator;
- this.quotechar = quotechar;
- this.escapechar = escapechar;
- this.lineEnd = lineEnd;
- }
-
- /**
- * Writes the entire list to a CSV file. The list is assumed to be a
- * String[]
- *
- * @param allLines
- * a List of String[], with each String[] representing a line of
- * the file.
- */
- public void writeAll(List allLines) {
- for (String[] line : allLines) {
- writeNext(line);
- }
- }
-
- protected void writeColumnNames(ResultSet rs)
- throws SQLException {
-
- writeNext(resultService.getColumnNames(rs));
- }
-
- /**
- * Writes the entire ResultSet to a CSV file.
- *
- * The caller is responsible for closing the ResultSet.
- *
- * @param rs the recordset to write
- * @param includeColumnNames true if you want column names in the output, false otherwise
- *
- * @throws java.io.IOException thrown by getColumnValue
- * @throws java.sql.SQLException thrown by getColumnValue
- */
- public void writeAll(java.sql.ResultSet rs, boolean includeColumnNames) throws SQLException, IOException {
-
-
- if (includeColumnNames) {
- writeColumnNames(rs);
- }
-
- while (rs.next())
- {
- writeNext(resultService.getColumnValues(rs));
- }
- }
-
-
- /**
- * Writes the next line to the file.
- *
- * @param nextLine
- * a string array with each comma-separated element as a separate
- * entry.
- */
- public void writeNext(String[] nextLine) {
-
- if (nextLine == null)
- return;
-
- StringBuilder sb = new StringBuilder(INITIAL_STRING_SIZE);
- for (int i = 0; i < nextLine.length; i++) {
-
- if (i != 0) {
- sb.append(separator);
- }
-
- String nextElement = nextLine[i];
- if (nextElement == null)
- continue;
- if (quotechar != NO_QUOTE_CHARACTER)
- sb.append(quotechar);
-
- sb.append(stringContainsSpecialCharacters(nextElement) ? processLine(nextElement) : nextElement);
-
- if (quotechar != NO_QUOTE_CHARACTER)
- sb.append(quotechar);
- }
-
- sb.append(lineEnd);
- pw.write(sb.toString());
-
- }
-
- private boolean stringContainsSpecialCharacters(String line) {
- return line.indexOf(quotechar) != -1 || line.indexOf(escapechar) != -1;
- }
-
- protected StringBuilder processLine(String nextElement)
- {
- StringBuilder sb = new StringBuilder(INITIAL_STRING_SIZE);
- for (int j = 0; j < nextElement.length(); j++) {
- char nextChar = nextElement.charAt(j);
- if (escapechar != NO_ESCAPE_CHARACTER && nextChar == quotechar) {
- sb.append(escapechar).append(nextChar);
- } else if (escapechar != NO_ESCAPE_CHARACTER && nextChar == escapechar) {
- sb.append(escapechar).append(nextChar);
- } else {
- sb.append(nextChar);
- }
- }
-
- return sb;
- }
-
- /**
- * Flush underlying stream to writer.
- *
- * @throws IOException if bad things happen
- */
- public void flush() throws IOException {
-
- pw.flush();
-
- }
-
- /**
- * Close the underlying stream writer flushing any buffered content.
- *
- * @throws IOException if bad things happen
- *
- */
- public void close() throws IOException {
- flush();
- pw.close();
- rawWriter.close();
- }
-
- /**
- * Checks to see if the there has been an error in the printstream.
- */
- public boolean checkError() {
- return pw.checkError();
- }
-
- public void setResultService(ResultSetHelper resultService) {
- this.resultService = resultService;
- }
-
-}
diff --git a/src/main/java/au/com/bytecode/opencsv/ResultSetHelper.java b/src/main/java/au/com/bytecode/opencsv/ResultSetHelper.java
deleted file mode 100644
index 9b22216f..00000000
--- a/src/main/java/au/com/bytecode/opencsv/ResultSetHelper.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
- Copyright 2005 Bytecode Pty Ltd.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
-
-package au.com.bytecode.opencsv;
-
-import java.io.IOException;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-/**
- *
- *
- *
- *
- *
- */
-public interface ResultSetHelper {
- public String[] getColumnNames(ResultSet rs) throws SQLException;
-
- public String[] getColumnValues(ResultSet rs) throws SQLException, IOException;
-}
diff --git a/src/main/java/au/com/bytecode/opencsv/ResultSetHelperService.java b/src/main/java/au/com/bytecode/opencsv/ResultSetHelperService.java
deleted file mode 100644
index ddfdebc2..00000000
--- a/src/main/java/au/com/bytecode/opencsv/ResultSetHelperService.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/**
- Copyright 2005 Bytecode Pty Ltd.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
-
-package au.com.bytecode.opencsv;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.math.BigDecimal;
-import java.sql.*;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- *
- *
- * helper class for processing JDBC ResultSet objects
- *
- *
- */
-public class ResultSetHelperService implements ResultSetHelper {
- public static final int CLOBBUFFERSIZE = 2048;
-
- // note: we want to maintain compatibility with Java 5 VM's
- // These types don't exist in Java 5
- private static final int NVARCHAR = -9;
- private static final int NCHAR = -15;
- private static final int LONGNVARCHAR = -16;
- private static final int NCLOB = 2011;
-
- public String[] getColumnNames(ResultSet rs) throws SQLException {
- List names = new ArrayList();
- ResultSetMetaData metadata = rs.getMetaData();
-
- for (int i = 0; i < metadata.getColumnCount(); i++) {
- names.add(metadata.getColumnName(i+1));
- }
-
- String[] nameArray = new String[names.size()];
- return names.toArray(nameArray);
- }
-
- public String[] getColumnValues(ResultSet rs) throws SQLException, IOException {
-
- List values = new ArrayList();
- ResultSetMetaData metadata = rs.getMetaData();
-
- for (int i = 0; i < metadata.getColumnCount(); i++) {
- values.add(getColumnValue(rs, metadata.getColumnType(i + 1), i + 1));
- }
-
- String[] valueArray = new String[values.size()];
- return values.toArray(valueArray);
- }
-
- private String handleObject(Object obj){
- return obj == null ? "" : String.valueOf(obj);
- }
-
- private String handleBigDecimal(BigDecimal decimal) {
- return decimal == null ? "" : decimal.toString();
- }
-
- private String handleLong(ResultSet rs, int columnIndex) throws SQLException {
- long lv = rs.getLong(columnIndex);
- return rs.wasNull() ? "" : Long.toString(lv);
- }
-
- private String handleInteger(ResultSet rs, int columnIndex) throws SQLException {
- int i = rs.getInt(columnIndex);
- return rs.wasNull() ? "" : Integer.toString(i);
- }
-
- private String handleDate(ResultSet rs, int columnIndex) throws SQLException {
- java.sql.Date date = rs.getDate(columnIndex);
- String value = null;
- if (date != null) {
- SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy");
- value = dateFormat.format(date);
- }
- return value;
- }
-
- private String handleTime(Time time) {
- return time == null ? null : time.toString();
- }
-
- private String handleTimestamp(Timestamp timestamp) {
- SimpleDateFormat timeFormat = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss");
- return timestamp == null ? null : timeFormat.format(timestamp);
- }
-
- private String getColumnValue(ResultSet rs, int colType, int colIndex)
- throws SQLException, IOException {
-
- String value = "";
-
- switch (colType)
- {
- case Types.BIT:
- case Types.JAVA_OBJECT:
- value = handleObject(rs.getObject(colIndex));
- break;
- case Types.BOOLEAN:
- boolean b = rs.getBoolean(colIndex);
- value = Boolean.valueOf(b).toString();
- break;
- case NCLOB: // todo : use rs.getNClob
- case Types.CLOB:
- Clob c = rs.getClob(colIndex);
- if (c != null) {
- value = read(c);
- }
- break;
- case Types.BIGINT:
- value = handleLong(rs, colIndex);
- break;
- case Types.DECIMAL:
- case Types.DOUBLE:
- case Types.FLOAT:
- case Types.REAL:
- case Types.NUMERIC:
- value = handleBigDecimal(rs.getBigDecimal(colIndex));
- break;
- case Types.INTEGER:
- case Types.TINYINT:
- case Types.SMALLINT:
- value = handleInteger(rs, colIndex);
- break;
- case Types.DATE:
- value = handleDate(rs, colIndex);
- break;
- case Types.TIME:
- value = handleTime(rs.getTime(colIndex));
- break;
- case Types.TIMESTAMP:
- value = handleTimestamp(rs.getTimestamp(colIndex));
- break;
- case NVARCHAR: // todo : use rs.getNString
- case NCHAR: // todo : use rs.getNString
- case LONGNVARCHAR: // todo : use rs.getNString
- case Types.LONGVARCHAR:
- case Types.VARCHAR:
- case Types.CHAR:
- value = rs.getString(colIndex);
- break;
- default:
- value = "";
- }
-
-
- if (value == null)
- {
- value = "";
- }
-
- return value;
-
- }
-
- private static String read(Clob c) throws SQLException, IOException
- {
- StringBuilder sb = new StringBuilder( (int) c.length());
- Reader r = c.getCharacterStream();
- char[] cbuf = new char[CLOBBUFFERSIZE];
- int n;
- while ((n = r.read(cbuf, 0, cbuf.length)) != -1) {
- sb.append(cbuf, 0, n);
- }
- return sb.toString();
- }
-}
diff --git a/src/main/java/com/sk89q/worldguard/bukkit/ReportWriter.java b/src/main/java/com/sk89q/worldguard/bukkit/ReportWriter.java
index 22986b4a..3fb14e9c 100644
--- a/src/main/java/com/sk89q/worldguard/bukkit/ReportWriter.java
+++ b/src/main/java/com/sk89q/worldguard/bukkit/ReportWriter.java
@@ -115,7 +115,6 @@ private void appendGlobalConfiguration(ConfigurationManager config) {
appendHeader("Global Configuration");
LogListBlock log = new LogListBlock();
- LogListBlock entitiesLog = log.putChild("Entities");
LogListBlock configLog = log.putChild("Configuration");
Class extends ConfigurationManager> cls = config.getClass();
diff --git a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardEntityListener.java b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardEntityListener.java
index f1a4403e..90c226c1 100644
--- a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardEntityListener.java
+++ b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardEntityListener.java
@@ -26,17 +26,12 @@
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
-import org.bukkit.block.Block;
-import org.bukkit.block.BlockFace;
import org.bukkit.entity.*;
import org.bukkit.event.entity.*;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
-
import com.sk89q.worldedit.Vector;
import com.sk89q.worldedit.blocks.BlockType;
-
import static com.sk89q.worldguard.bukkit.BukkitUtil.*;
-
import com.sk89q.worldguard.protection.flags.DefaultFlag;
import com.sk89q.worldguard.protection.managers.RegionManager;
import com.sk89q.worldguard.protection.ApplicableRegionSet;
diff --git a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardWeatherListener.java b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardWeatherListener.java
index d71a4645..e6443633 100644
--- a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardWeatherListener.java
+++ b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardWeatherListener.java
@@ -18,27 +18,19 @@
*/
package com.sk89q.worldguard.bukkit;
-import org.bukkit.block.Block;
-import org.bukkit.event.Event.Priority;
-import org.bukkit.event.Event;
-import org.bukkit.plugin.PluginManager;
-import org.bukkit.ChatColor;
+import static com.sk89q.worldguard.bukkit.BukkitUtil.toVector;
import org.bukkit.Location;
-import org.bukkit.World;
-import org.bukkit.entity.*;
-import org.bukkit.event.weather.*;
-import org.bukkit.event.entity.*;
-import org.bukkit.event.entity.PigZapEvent;
-import org.bukkit.event.entity.CreeperPowerEvent;
-
+import org.bukkit.event.Event;
+import org.bukkit.event.Event.Priority;
+import org.bukkit.event.weather.LightningStrikeEvent;
+import org.bukkit.event.weather.ThunderChangeEvent;
+import org.bukkit.event.weather.WeatherChangeEvent;
+import org.bukkit.event.weather.WeatherListener;
+import org.bukkit.plugin.PluginManager;
import com.sk89q.worldedit.Vector;
-import com.sk89q.worldedit.blocks.BlockType;
-
-import static com.sk89q.worldguard.bukkit.BukkitUtil.*;
-
+import com.sk89q.worldguard.protection.ApplicableRegionSet;
import com.sk89q.worldguard.protection.flags.DefaultFlag;
import com.sk89q.worldguard.protection.managers.RegionManager;
-import com.sk89q.worldguard.protection.ApplicableRegionSet;
public class WorldGuardWeatherListener extends WeatherListener {
diff --git a/src/main/java/com/sk89q/worldguard/protection/GlobalRegionManager.java b/src/main/java/com/sk89q/worldguard/protection/GlobalRegionManager.java
index 8d506ae9..0f125509 100644
--- a/src/main/java/com/sk89q/worldguard/protection/GlobalRegionManager.java
+++ b/src/main/java/com/sk89q/worldguard/protection/GlobalRegionManager.java
@@ -127,6 +127,7 @@ public void unloadAll() {
* Load region information for a world.
*
* @param world
+ * @return
*/
public RegionManager load(World world) {
String name = world.getName();
diff --git a/src/main/java/com/sk89q/worldguard/protection/regions/ProtectedPolygonalRegion.java b/src/main/java/com/sk89q/worldguard/protection/regions/ProtectedPolygonalRegion.java
index 0162d064..41a8aa86 100644
--- a/src/main/java/com/sk89q/worldguard/protection/regions/ProtectedPolygonalRegion.java
+++ b/src/main/java/com/sk89q/worldguard/protection/regions/ProtectedPolygonalRegion.java
@@ -277,11 +277,11 @@ public int volume() {
}
double area = 0;
- int xa, za, z1, z2;
+ int xa, z1, z2;
for (int i = 0; i <= numPoints - 1; i++) {
xa = points.get(i).getBlockX();
- za = points.get(i).getBlockZ();
+ //za = points.get(i).getBlockZ();
if (points.get(i + 1) == null) {
z1 = points.get(0).getBlockZ();
@@ -298,7 +298,7 @@ public int volume() {
}
xa = points.get(0).getBlockX();
- za = points.get(0).getBlockZ();
+ //za = points.get(0).getBlockZ();
area = area + (xa * (points.get(1).getBlockZ() - points.get(numPoints - 1).getBlockZ()));