java/sql-dk/src/info/globalcode/sql/dk/InfoLister.java
branchv_0
changeset 210 f8aa3686d512
parent 209 8dfe037b3274
child 211 b5148f646278
equal deleted inserted replaced
209:8dfe037b3274 210:f8aa3686d512
    90 				case CONNECTION:
    90 				case CONNECTION:
    91 				case JDBC_DRIVERS:
    91 				case JDBC_DRIVERS:
    92 				case JDBC_PROPERTIES:
    92 				case JDBC_PROPERTIES:
    93 				case DATABASES:
    93 				case DATABASES:
    94 				case FORMATTERS:
    94 				case FORMATTERS:
       
    95 				case FORMATTER_PROPERTIES:
    95 				case TYPES:
    96 				case TYPES:
    96 				case JAVA_PROPERTIES:
    97 				case JAVA_PROPERTIES:
    97 				case ENVIRONMENT_VARIABLES:
    98 				case ENVIRONMENT_VARIABLES:
    98 					formattinNeeded = true;
    99 					formattinNeeded = true;
    99 					break;
   100 					break;
   180 		for (String name : options.getFormatterNamesToListProperties()) {
   181 		for (String name : options.getFormatterNamesToListProperties()) {
   181 			log.log(Level.SEVERE, "TODO: list formatter properties for {0}", name);
   182 			log.log(Level.SEVERE, "TODO: list formatter properties for {0}", name);
   182 		}
   183 		}
   183 	}
   184 	}
   184 
   185 
   185 	public void listTypes() throws FormatterException, ConfigurationException {
   186 	private void listTypes() throws FormatterException, ConfigurationException {
   186 		ColumnsHeader header = constructHeader(new HeaderField("name", SQLType.VARCHAR), new HeaderField("code", SQLType.INTEGER));
   187 		ColumnsHeader header = constructHeader(new HeaderField("name", SQLType.VARCHAR), new HeaderField("code", SQLType.INTEGER));
   187 		List<Object[]> data = new ArrayList<>();
   188 		List<Object[]> data = new ArrayList<>();
   188 		for (SQLType sqlType : SQLType.values()) {
   189 		for (SQLType sqlType : SQLType.values()) {
   189 			data.add(new Object[]{sqlType.name(), sqlType.getCode()});
   190 			data.add(new Object[]{sqlType.name(), sqlType.getCode()});
   190 		}
   191 		}
   191 		printTable(formatter, header, "-- data types", null, data);
   192 		printTable(formatter, header, "-- data types", null, data);
   192 		log.log(Level.INFO, "Type names in --types option are case insensitive");
   193 		log.log(Level.INFO, "Type names in --types option are case insensitive");
   193 	}
   194 	}
   194 
   195 
   195 	public void listDatabases() throws ConfigurationException, FormatterException {
   196 	private void listDatabases() throws ConfigurationException, FormatterException {
   196 		ColumnsHeader header = constructHeader(
   197 		ColumnsHeader header = constructHeader(
   197 				new HeaderField("database_name", SQLType.VARCHAR),
   198 				new HeaderField("database_name", SQLType.VARCHAR),
   198 				new HeaderField("user_name", SQLType.VARCHAR),
   199 				new HeaderField("user_name", SQLType.VARCHAR),
   199 				new HeaderField("database_url", SQLType.VARCHAR));
   200 				new HeaderField("database_url", SQLType.VARCHAR));
   200 		List<Object[]> data = new ArrayList<>();
   201 		List<Object[]> data = new ArrayList<>();
   218 		}
   219 		}
   219 
   220 
   220 		printTable(formatter, header, "-- configured databases", null, data);
   221 		printTable(formatter, header, "-- configured databases", null, data);
   221 	}
   222 	}
   222 
   223 
   223 	public void listJdbcDrivers() throws FormatterException, ConfigurationException {
   224 	private void listJdbcDrivers() throws FormatterException, ConfigurationException {
   224 		ColumnsHeader header = constructHeader(
   225 		ColumnsHeader header = constructHeader(
   225 				new HeaderField("class", SQLType.VARCHAR),
   226 				new HeaderField("class", SQLType.VARCHAR),
   226 				new HeaderField("version", SQLType.VARCHAR),
   227 				new HeaderField("version", SQLType.VARCHAR),
   227 				new HeaderField("major", SQLType.INTEGER),
   228 				new HeaderField("major", SQLType.INTEGER),
   228 				new HeaderField("minor", SQLType.INTEGER),
   229 				new HeaderField("minor", SQLType.INTEGER),
   241 		}
   242 		}
   242 
   243 
   243 		printTable(formatter, header, "-- discovered JDBC drivers (available on the CLASSPATH)", null, data);
   244 		printTable(formatter, header, "-- discovered JDBC drivers (available on the CLASSPATH)", null, data);
   244 	}
   245 	}
   245 
   246 
   246 	public void listJdbcProperties() throws FormatterException, ConfigurationException {
   247 	private void listJdbcProperties() throws FormatterException, ConfigurationException {
   247 		for (String dbName : options.getDatabaseNamesToListProperties()) {
   248 		for (String dbName : options.getDatabaseNamesToListProperties()) {
   248 			ColumnsHeader header = constructHeader(
   249 			ColumnsHeader header = constructHeader(
   249 					new HeaderField("property_name", SQLType.VARCHAR),
   250 					new HeaderField("property_name", SQLType.VARCHAR),
   250 					new HeaderField("required", SQLType.BOOLEAN),
   251 					new HeaderField("required", SQLType.BOOLEAN),
   251 					new HeaderField("choices", SQLType.ARRAY),
   252 					new HeaderField("choices", SQLType.ARRAY),
   331 	 * much smaller.
   332 	 * much smaller.
   332 	 */
   333 	 */
   333 	private static final long TESTING_AWAIT_LIMIT = 1;
   334 	private static final long TESTING_AWAIT_LIMIT = 1;
   334 	private static final TimeUnit TESTING_AWAIT_UNIT = TimeUnit.DAYS;
   335 	private static final TimeUnit TESTING_AWAIT_UNIT = TimeUnit.DAYS;
   335 
   336 
   336 	public void testConnections() throws FormatterException, ConfigurationException {
   337 	private void testConnections() throws FormatterException, ConfigurationException {
   337 		ColumnsHeader header = constructHeader(
   338 		ColumnsHeader header = constructHeader(
   338 				new HeaderField("database_name", SQLType.VARCHAR),
   339 				new HeaderField("database_name", SQLType.VARCHAR),
   339 				new HeaderField("configured", SQLType.BOOLEAN),
   340 				new HeaderField("configured", SQLType.BOOLEAN),
   340 				new HeaderField("connected", SQLType.BOOLEAN));
   341 				new HeaderField("connected", SQLType.BOOLEAN));
   341 
   342 
   399 			r.setThrown(e);
   400 			r.setThrown(e);
   400 			log.log(r);
   401 			log.log(r);
   401 		}
   402 		}
   402 	}
   403 	}
   403 
   404 
   404 	public Object[] testConnection(String dbName) {
   405 	private Object[] testConnection(String dbName) {
   405 		log.log(Level.FINE, "Testing connection to database: {0}", dbName);
   406 		log.log(Level.FINE, "Testing connection to database: {0}", dbName);
   406 
   407 
   407 		boolean succesfullyConnected = false;
   408 		boolean succesfullyConnected = false;
   408 		boolean succesfullyConfigured = false;
   409 		boolean succesfullyConfigured = false;
   409 
   410 
   420 		}
   421 		}
   421 
   422 
   422 		return new Object[]{dbName, succesfullyConfigured, succesfullyConnected};
   423 		return new Object[]{dbName, succesfullyConfigured, succesfullyConnected};
   423 	}
   424 	}
   424 
   425 
   425 	public void printResource(String fileName) {
   426 	private void printResource(String fileName) {
   426 		try (BufferedReader reader = new BufferedReader(new InputStreamReader(getClass().getClassLoader().getResourceAsStream(fileName)))) {
   427 		try (BufferedReader reader = new BufferedReader(new InputStreamReader(getClass().getClassLoader().getResourceAsStream(fileName)))) {
   427 			while (true) {
   428 			while (true) {
   428 				String line = reader.readLine();
   429 				String line = reader.readLine();
   429 				if (line == null) {
   430 				if (line == null) {
   430 					break;
   431 					break;