java/sql-dk/src/info/globalcode/sql/dk/InfoLister.java
branchv_0
changeset 201 d3db5a72a089
parent 200 2e351d7c26c4
child 203 504c4ba56d1c
equal deleted inserted replaced
200:2e351d7c26c4 201:d3db5a72a089
    37 import java.sql.Driver;
    37 import java.sql.Driver;
    38 import java.sql.DriverManager;
    38 import java.sql.DriverManager;
    39 import java.sql.DriverPropertyInfo;
    39 import java.sql.DriverPropertyInfo;
    40 import java.sql.SQLException;
    40 import java.sql.SQLException;
    41 import java.util.ArrayList;
    41 import java.util.ArrayList;
       
    42 import java.util.Collections;
       
    43 import java.util.Comparator;
    42 import java.util.EnumSet;
    44 import java.util.EnumSet;
    43 import java.util.HashSet;
    45 import java.util.HashSet;
    44 import java.util.List;
    46 import java.util.List;
    45 import java.util.Map.Entry;
    47 import java.util.Map.Entry;
    46 import java.util.ServiceLoader;
    48 import java.util.ServiceLoader;
   123 		ColumnsHeader header = constructHeader(new HeaderField("name", SQLType.VARCHAR), new HeaderField("value", SQLType.VARCHAR));
   125 		ColumnsHeader header = constructHeader(new HeaderField("name", SQLType.VARCHAR), new HeaderField("value", SQLType.VARCHAR));
   124 		List<Object[]> data = new ArrayList<>();
   126 		List<Object[]> data = new ArrayList<>();
   125 		for (Entry<Object, Object> e : System.getProperties().entrySet()) {
   127 		for (Entry<Object, Object> e : System.getProperties().entrySet()) {
   126 			data.add(new Object[]{e.getKey(), e.getValue()});
   128 			data.add(new Object[]{e.getKey(), e.getValue()});
   127 		}
   129 		}
   128 		printTable(formatter, header, "-- Java system properties", null, data);
   130 		printTable(formatter, header, "-- Java system properties", null, data, 0);
   129 	}
   131 	}
   130 
   132 
   131 	private void listEnvironmentVariables() throws FormatterException, ConfigurationException {
   133 	private void listEnvironmentVariables() throws FormatterException, ConfigurationException {
   132 		ColumnsHeader header = constructHeader(new HeaderField("name", SQLType.VARCHAR), new HeaderField("value", SQLType.VARCHAR));
   134 		ColumnsHeader header = constructHeader(new HeaderField("name", SQLType.VARCHAR), new HeaderField("value", SQLType.VARCHAR));
   133 		List<Object[]> data = new ArrayList<>();
   135 		List<Object[]> data = new ArrayList<>();
   134 		for (Entry<String, String> e : System.getenv().entrySet()) {
   136 		for (Entry<String, String> e : System.getenv().entrySet()) {
   135 			data.add(new Object[]{e.getKey(), e.getValue()});
   137 			data.add(new Object[]{e.getKey(), e.getValue()});
   136 		}
   138 		}
   137 		printTable(formatter, header, "-- environment variables", null, data);
   139 		printTable(formatter, header, "-- environment variables", null, data, 0);
   138 	}
   140 	}
   139 
   141 
   140 	private void listFormatters() throws ConfigurationException, FormatterException {
   142 	private void listFormatters() throws ConfigurationException, FormatterException {
   141 		ColumnsHeader header = constructHeader(
   143 		ColumnsHeader header = constructHeader(
   142 				new HeaderField("name", SQLType.VARCHAR),
   144 				new HeaderField("name", SQLType.VARCHAR),
   424 	private void println(String line) {
   426 	private void println(String line) {
   425 		out.println(line);
   427 		out.println(line);
   426 	}
   428 	}
   427 
   429 
   428 	private void printTable(Formatter formatter, ColumnsHeader header, String sql, List<Parameter> parameters, List<Object[]> data) throws ConfigurationException, FormatterException {
   430 	private void printTable(Formatter formatter, ColumnsHeader header, String sql, List<Parameter> parameters, List<Object[]> data) throws ConfigurationException, FormatterException {
       
   431 		printTable(formatter, header, sql, parameters, data, null);
       
   432 	}
       
   433 
       
   434 	private void printTable(Formatter formatter, ColumnsHeader header, String sql, List<Parameter> parameters, List<Object[]> data, final Integer sortByColumn) throws ConfigurationException, FormatterException {
   429 		printHeader(formatter, header, sql, parameters);
   435 		printHeader(formatter, header, sql, parameters);
       
   436 
       
   437 		if (sortByColumn != null) {
       
   438 			Collections.sort(data, new Comparator<Object[]>() {
       
   439 
       
   440 				@Override
       
   441 				public int compare(Object[] o1, Object[] o2) {
       
   442 					String s1 = String.valueOf(o1[sortByColumn]);
       
   443 					String s2 = String.valueOf(o2[sortByColumn]);
       
   444 					return s1.compareTo(s2);
       
   445 				}
       
   446 			});
       
   447 		}
   430 
   448 
   431 		for (Object[] row : data) {
   449 		for (Object[] row : data) {
   432 			printRow(formatter, row);
   450 			printRow(formatter, row);
   433 		}
   451 		}
   434 
   452