From a6c33aa89de8d0bd2973740ecba77786eecabfc7 Mon Sep 17 00:00:00 2001 From: "Thomas F. Sturm" Date: Thu, 11 Jan 2018 17:27:07 +0100 Subject: [PATCH] Adaptions for Java 9 and minor corrections --- LICENSE | 2 +- build.number | 4 +- build.xml | 8 +-- doc/csvsorter.tex | 34 ++++++----- launcher/launch4j.xml | 2 +- src/tfs/csvsorter/CSVSorter.java | 14 ++--- src/tfs/csvsorter/MultiColumnComparator.java | 36 ++++++------ src/tfs/csvsorter/SingleColumnComparator.java | 57 ++++++++++--------- 8 files changed, 80 insertions(+), 77 deletions(-) diff --git a/LICENSE b/LICENSE index 0971b9c..0423396 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2014, Prof. Dr. Dr. Thomas F. Sturm +Copyright (c) 2014-2018, Prof. Dr. Dr. Thomas F. Sturm All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/build.number b/build.number index b7d38b2..ee34fd6 100644 --- a/build.number +++ b/build.number @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Mon Jul 14 09:38:37 CEST 2014 -build.number=59 +#Thu Jan 11 17:02:28 CET 2018 +build.number=75 diff --git a/build.xml b/build.xml index 8d98191..af8fe15 100644 --- a/build.xml +++ b/build.xml @@ -4,8 +4,8 @@ CSV-Sorter ANT build - - + + @@ -88,8 +88,8 @@ includes="${package}/**" deprecation="on" includeAntRuntime="false" - source="1.6" - target="1.6" + source="1.7" + target="1.7" > diff --git a/doc/csvsorter.tex b/doc/csvsorter.tex index a700cb9..3109ef0 100644 --- a/doc/csvsorter.tex +++ b/doc/csvsorter.tex @@ -1,8 +1,8 @@ % \LaTeX-Main\ -%% The csvsorter program - version 0.94 beta (2014/07/14) +%% The csvsorter program - version 0.95 beta (2018/01/11) %% csvsorter.tex: Manual %% -%% Copyright (c) 2014, Prof. Dr. Dr. Thomas F. Sturm +%% Copyright (c) 2014-2018, Prof. Dr. Dr. Thomas F. Sturm %% All rights reserved. %% %% Redistribution and use in source and binary forms, with or without @@ -37,7 +37,7 @@ \usepackage[T1]{fontenc} \usepackage[latin1]{inputenc} \usepackage[english]{babel} -\usepackage{lmodern,parskip,array,ifthen,calc} +\usepackage{lmodern,parskip,array} \usepackage{amsmath,amssymb} \usepackage[svgnames,table,hyperref]{xcolor} \usepackage{tikz} @@ -71,9 +71,9 @@ \usepackage[many,listings,minted]{tcolorbox} \usetikzlibrary{arrows.meta} -\def\version{0.94 beta}% -\def\datum{2014/07/14}% -\def\docdatum{2014/07/19} +\def\version{0.95 beta}% +\def\datum{2018/01/11}% +\def\docdatum{2018/01/11} \hypersetup{ pdftitle={Manual for the csvsorter program}, @@ -162,7 +162,7 @@ title={\thetcbcounter: #2},label={#3},center title,colframe=blue!25!red!50!black, colbacktitle=blue!25!red!75!black, fonttitle=\bfseries,toptitle=1mm,bottomtitle=1mm, - colback=red!5!white,drop lifted shadow,enlarge left by=(\linewidth-\tcb@width)/2, + colback=red!5!white,drop lifted shadow,center, before upper=\arrayrulecolor{blue!25!red!50!black}, float=tb,#1} \makeatother @@ -187,10 +187,8 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document} -\begin{center} -\begin{tcolorbox}[enhanced,hbox,tikznode,left=8mm,right=8mm,boxrule=0.4pt, +\begin{tcolorbox}[enhanced,center,hbox,tikznode,left=8mm,right=8mm,boxrule=0.4pt, colback=white,colframe=black!50!yellow, - %drop fuzzy midday shadow=black!50!yellow, drop lifted shadow=black!50!yellow, before=\par\vspace*{5mm},after=\par\bigskip] {\bfseries\LARGE The \csvsorter\ program}\\[3mm] @@ -212,6 +210,7 @@ {\footnotesize Documentation \docdatum}\\[3mm] \url{http://T-F-S.github.io/csvsorter/} \end{tcolorbox} +\begin{center} {\large Thomas F.~Sturm% \footnote{Prof.~Dr.~Dr.~Thomas F.~Sturm, Institut f\"{u}r Mathematik und Informatik, Universit\"{a}t der Bundeswehr M\"{u}nchen, D-85577 Neubiberg, Germany; @@ -247,7 +246,7 @@ \section{Introduction} The \csvsorter\ program was developed as external sorting program for the \texttt{csvsimple} \LaTeX\ package, -see \url{www.ctan.org/tex-archive/macros/latex/contrib/csvsimple}. +see \url{http://www.ctan.org/tex-archive/macros/latex/contrib/csvsimple}. But it can be used for any CSV sorting task. \clearpage @@ -263,7 +262,7 @@ \section{License} \bigskip \begin{tcolorbox}[parbox=false,colframe=red!50!black,colback=yellow!10!white] -Copyright \copyright~2014, Prof.~Dr.~Dr.~Thomas~F.~Sturm\\ +Copyright \copyright~2014-2018, Prof.~Dr.~Dr.~Thomas~F.~Sturm\\ All rights reserved. Redistribution and use in source and binary forms, with or without modification, @@ -634,7 +633,7 @@ \section{Configuration}\label{sec:config} The document element \element{csv} is mandatory. -\subsection{\element{noheader}} +\subsection{\element{noHeader}} If this element is present, the CSV file(s) do not have a header line. Note that in this case the columns can be addressed by number only. If this element is not present, the first line of the CSV file is @@ -940,8 +939,15 @@ \subsection{Hierarchical brackets} \section{Version History} %\versionbox[before=\par]{Version \version\ (\datum)} +\versionbox[before=\par]{Version 0.95 beta (2018/01/11)} +\begin{changelist} +\item[changed] Windows launcher |csvsorter.exe| can be used for Java 9 now. +\item[changed] Java 7 or newer is required now. +\item[fixed] Deprecated constructors replaced. +\item[fixed] Documentation corrected for \element{noHeader}. +\end{changelist} -\versionbox[before=\par]{Version 0.94 beta (2014/07/14)} +\versionbox{Version 0.94 beta (2014/07/14)} \begin{changelist} \item[new] Token file for interaction with |csvsimple| with new command-line option 't'. \item[new] New command-line option 'q' to set quiet state. diff --git a/launcher/launch4j.xml b/launcher/launch4j.xml index 5982209..eca7b22 100644 --- a/launcher/launch4j.xml +++ b/launcher/launch4j.xml @@ -16,7 +16,7 @@ false - 1.6.0 + 1.7.0 preferJre 64/32 diff --git a/src/tfs/csvsorter/CSVSorter.java b/src/tfs/csvsorter/CSVSorter.java index 10f8d6f..c388c7c 100644 --- a/src/tfs/csvsorter/CSVSorter.java +++ b/src/tfs/csvsorter/CSVSorter.java @@ -31,9 +31,9 @@ public class CSVSorter static { - VERSION = "0.94 beta"; - DATE = "2014/07/14"; - BUILD = 58; + VERSION = "0.95 beta"; + DATE = "2018/01/11"; + BUILD = 74; PROGNAME = "CSV-Sorter"; } @@ -44,7 +44,7 @@ public static String getFullVersion() public static String getCopyright() { - return "Copyright (c) 2014, Prof. Dr. Dr. Thomas F. Sturm"; + return "Copyright (c) 2014-2018, Prof. Dr. Dr. Thomas F. Sturm"; } private enum OPTCODE { c, l, i, o, x, t, q }; @@ -102,6 +102,7 @@ private void printLogHeader(PrintWriter log) { log.println(getFullVersion()); log.println(getCopyright()); + log.println("Java Version: "+System.getProperty("java.version")); log.println("Start time: "+startDate); } @@ -445,11 +446,6 @@ public static void main(String s[]) { startTime = System.nanoTime(); Date date = new Date(); - /* - System.out.println("This is "+getFullVersion()); - System.out.println(getCopyright()); - System.out.println(""); - */ SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); startDate = sdf.format(date); diff --git a/src/tfs/csvsorter/MultiColumnComparator.java b/src/tfs/csvsorter/MultiColumnComparator.java index df5d2bf..16ff4e8 100644 --- a/src/tfs/csvsorter/MultiColumnComparator.java +++ b/src/tfs/csvsorter/MultiColumnComparator.java @@ -69,7 +69,7 @@ public void config(HashMap nameToColumn, int maxNumber) throws E } - int getIntegerValue(String[] parts) throws Exception + Integer getIntegerValue(String[] parts) throws Exception { int s = 0; for (NumberName nn : getNumberNames()) @@ -80,7 +80,7 @@ int getIntegerValue(String[] parts) throws Exception } - long getLongValue(String[] parts) throws Exception + Long getLongValue(String[] parts) throws Exception { long s = 0; for (NumberName nn : getNumberNames()) @@ -92,7 +92,7 @@ long getLongValue(String[] parts) throws Exception - double getDoubleValue(String[] parts) throws Exception + Double getDoubleValue(String[] parts) throws Exception { double s = 0; for (NumberName nn : getNumberNames()) @@ -116,7 +116,7 @@ public static MultiColumnComparator createIntegerComparator(NumberName[] numberN { public Comparable generateKey(String[] parts) throws Exception { - return new Integer(getIntegerValue(parts)); + return getIntegerValue(parts); } }; } @@ -129,7 +129,7 @@ public Comparable generateKey(String[] parts) throws Exception { try { - return new Integer(getIntegerValue(parts)); + return getIntegerValue(parts); } catch (Exception e) { @@ -147,20 +147,20 @@ public Comparable generateKey(String[] parts) throws Exception { public Comparable generateKey(String[] parts) throws Exception { - return new Integer(-getIntegerValue(parts)); + return Integer.valueOf(-getIntegerValue(parts)); } }; } else { - final Integer defaultKey = new Integer(-Integer.parseInt(defaultString)); + final Integer defaultKey = Integer.valueOf(-Integer.parseInt(defaultString)); return new MultiColumnComparator(numberNames,ascending,type,defaultString) { public Comparable generateKey(String[] parts) throws Exception { try { - return new Integer(-getIntegerValue(parts)); + return Integer.valueOf(-getIntegerValue(parts)); } catch (Exception e) { @@ -186,7 +186,7 @@ public static MultiColumnComparator createLongComparator(NumberName[] numberName { public Comparable generateKey(String[] parts) throws Exception { - return new Long(getLongValue(parts)); + return getLongValue(parts); } }; } @@ -199,7 +199,7 @@ public Comparable generateKey(String[] parts) throws Exception { try { - return new Long(getLongValue(parts)); + return getLongValue(parts); } catch (Exception e) { @@ -217,20 +217,20 @@ public Comparable generateKey(String[] parts) throws Exception { public Comparable generateKey(String[] parts) throws Exception { - return new Long(-getLongValue(parts)); + return Long.valueOf(-getLongValue(parts)); } }; } else { - final Long defaultKey = new Long(-Long.parseLong(defaultString)); + final Long defaultKey = Long.valueOf(-Long.parseLong(defaultString)); return new MultiColumnComparator(numberNames,ascending,type,defaultString) { public Comparable generateKey(String[] parts) throws Exception { try { - return new Long(-getLongValue(parts)); + return Long.valueOf(-getLongValue(parts)); } catch (Exception e) { @@ -256,7 +256,7 @@ public static MultiColumnComparator createDoubleComparator(NumberName[] numberNa { public Comparable generateKey(String[] parts) throws Exception { - return new Double(getDoubleValue(parts)); + return getDoubleValue(parts); } }; } @@ -269,7 +269,7 @@ public Comparable generateKey(String[] parts) throws Exception { try { - return new Double(getDoubleValue(parts)); + return getDoubleValue(parts); } catch (Exception e) { @@ -287,20 +287,20 @@ public Comparable generateKey(String[] parts) throws Exception { public Comparable generateKey(String[] parts) throws Exception { - return new Double(-getDoubleValue(parts)); + return Double.valueOf(-getDoubleValue(parts)); } }; } else { - final Double defaultKey = new Double(-Double.parseDouble(defaultString)); + final Double defaultKey = Double.valueOf(-Double.parseDouble(defaultString)); return new MultiColumnComparator(numberNames,ascending,type,defaultString) { public Comparable generateKey(String[] parts) throws Exception { try { - return new Double(-getDoubleValue(parts)); + return Double.valueOf(-getDoubleValue(parts)); } catch (Exception e) { diff --git a/src/tfs/csvsorter/SingleColumnComparator.java b/src/tfs/csvsorter/SingleColumnComparator.java index b0ed0ca..58d96fd 100644 --- a/src/tfs/csvsorter/SingleColumnComparator.java +++ b/src/tfs/csvsorter/SingleColumnComparator.java @@ -66,24 +66,25 @@ public void config(HashMap nameToColumn, int maxNumber) throws E } - int getIntegerValue(String[] parts) throws Exception + Integer getIntegerValue(String[] parts) throws Exception { - return Integer.parseInt(parts[numberName.getNumber()]); + return Integer.valueOf(parts[numberName.getNumber()]); } - long getLongValue(String[] parts) throws Exception + + Long getLongValue(String[] parts) throws Exception { - return Long.parseLong(parts[numberName.getNumber()]); + return Long.valueOf(parts[numberName.getNumber()]); } - double getDoubleValue(String[] parts) throws Exception + Double getDoubleValue(String[] parts) throws Exception { - return Double.parseDouble(parts[numberName.getNumber()]); + return Double.valueOf(parts[numberName.getNumber()]); } - long getDateValue(String[] parts, Locale locale) throws Exception + Long getDateValue(String[] parts, Locale locale) throws Exception { return DateFormat.getDateInstance(DateFormat.DEFAULT,locale).parse(parts[getNumber()]).getTime(); } @@ -101,7 +102,7 @@ public static SingleColumnComparator createIntegerComparator(NumberName numberNa { public Comparable generateKey(String[] parts) throws Exception { - return new Integer(getIntegerValue(parts)); + return getIntegerValue(parts); } }; } @@ -114,7 +115,7 @@ public Comparable generateKey(String[] parts) throws Exception { try { - return new Integer(getIntegerValue(parts)); + return getIntegerValue(parts); } catch (Exception e) { @@ -132,20 +133,20 @@ public Comparable generateKey(String[] parts) throws Exception { public Comparable generateKey(String[] parts) throws Exception { - return new Integer(-getIntegerValue(parts)); + return Integer.valueOf(-getIntegerValue(parts)); } }; } else { - final Integer defaultKey = new Integer(-Integer.parseInt(defaultString)); + final Integer defaultKey = Integer.valueOf(-Integer.parseInt(defaultString)); return new SingleColumnComparator(numberName,ascending,type,defaultString) { public Comparable generateKey(String[] parts) throws Exception { try { - return new Integer(-getIntegerValue(parts)); + return Integer.valueOf(-getIntegerValue(parts)); } catch (Exception e) { @@ -171,7 +172,7 @@ public static SingleColumnComparator createLongComparator(NumberName numberName, { public Comparable generateKey(String[] parts) throws Exception { - return new Long(getLongValue(parts)); + return getLongValue(parts); } }; } @@ -184,7 +185,7 @@ public Comparable generateKey(String[] parts) throws Exception { try { - return new Long(getLongValue(parts)); + return getLongValue(parts); } catch (Exception e) { @@ -202,20 +203,20 @@ public Comparable generateKey(String[] parts) throws Exception { public Comparable generateKey(String[] parts) throws Exception { - return new Long(-getLongValue(parts)); + return Long.valueOf(-getLongValue(parts)); } }; } else { - final Long defaultKey = new Long(-Long.parseLong(defaultString)); + final Long defaultKey = Long.valueOf(-Long.parseLong(defaultString)); return new SingleColumnComparator(numberName,ascending,type,defaultString) { public Comparable generateKey(String[] parts) throws Exception { try { - return new Long(-getLongValue(parts)); + return Long.valueOf(-getLongValue(parts)); } catch (Exception e) { @@ -241,7 +242,7 @@ public static SingleColumnComparator createDoubleComparator(NumberName numberNam { public Comparable generateKey(String[] parts) throws Exception { - return new Double(getDoubleValue(parts)); + return getDoubleValue(parts); } }; } @@ -254,7 +255,7 @@ public Comparable generateKey(String[] parts) throws Exception { try { - return new Double(getDoubleValue(parts)); + return getDoubleValue(parts); } catch (Exception e) { @@ -272,20 +273,20 @@ public Comparable generateKey(String[] parts) throws Exception { public Comparable generateKey(String[] parts) throws Exception { - return new Double(-getDoubleValue(parts)); + return Double.valueOf(-getDoubleValue(parts)); } }; } else { - final Double defaultKey = new Double(-Double.parseDouble(defaultString)); + final Double defaultKey = Double.valueOf(-Double.parseDouble(defaultString)); return new SingleColumnComparator(numberName,ascending,type,defaultString) { public Comparable generateKey(String[] parts) throws Exception { try { - return new Double(-getDoubleValue(parts)); + return Double.valueOf(-getDoubleValue(parts)); } catch (Exception e) { @@ -311,20 +312,20 @@ public static SingleColumnComparator createDateComparator(NumberName numberName, { public Comparable generateKey(String[] parts) throws Exception { - return new Long(getDateValue(parts,locale)); + return getDateValue(parts,locale); } }; } else { - final Long defaultKey = new Long(DateFormat.getDateInstance(DateFormat.DEFAULT,locale).parse(defaultString).getTime()); + final Long defaultKey = DateFormat.getDateInstance(DateFormat.DEFAULT,locale).parse(defaultString).getTime(); return new SingleColumnComparator(numberName,ascending,type,defaultString) { public Comparable generateKey(String[] parts) throws Exception { try { - return new Long(getDateValue(parts,locale)); + return getDateValue(parts,locale); } catch (Exception e) { @@ -342,20 +343,20 @@ public Comparable generateKey(String[] parts) throws Exception { public Comparable generateKey(String[] parts) throws Exception { - return new Long(-getDateValue(parts,locale)); + return Long.valueOf(-getDateValue(parts,locale)); } }; } else { - final Long defaultKey = new Long(-DateFormat.getDateInstance(DateFormat.DEFAULT,locale).parse(defaultString).getTime()); + final Long defaultKey = -DateFormat.getDateInstance(DateFormat.DEFAULT,locale).parse(defaultString).getTime(); return new SingleColumnComparator(numberName,ascending,type,defaultString) { public Comparable generateKey(String[] parts) throws Exception { try { - return new Long(-getDateValue(parts,locale)); + return Long.valueOf(-getDateValue(parts,locale)); } catch (Exception e) {