3 * Copyright © 2013 František Kučera (frantovo.cz)
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 package info.globalcode.sql.dk;
20 import info.globalcode.sql.dk.configuration.ConfigurationProvider;
21 import java.io.BufferedReader;
22 import java.io.InputStreamReader;
23 import java.io.PrintStream;
24 import java.util.EnumSet;
25 import java.util.logging.Level;
26 import java.util.logging.Logger;
29 * Displays info like help, version etc.
31 * @author Ing. František Kučera (frantovo.cz)
33 public class InfoLister {
35 private static final Logger log = Logger.getLogger(InfoLister.class.getName());
36 private PrintStream out;
37 private ConfigurationProvider configurationProvider;
39 public InfoLister(PrintStream out, ConfigurationProvider configurationProvider) {
41 this.configurationProvider = configurationProvider;
44 public void showInfo(CLIOptions options) {
45 EnumSet<CLIOptions.INFO_TYPE> infoTypes = options.getShowInfo();
46 for (CLIOptions.INFO_TYPE infoType : infoTypes) {
49 * TODO: implement show info
52 println("TODO: list available formatters");
55 printResource(Constants.HELP_FILE);
58 printResource(Constants.LICENSE_FILE);
61 println("TODO: list supported types");
64 printResource(Constants.VERSION_FILE);
67 println("TODO: list databases");
70 println("TODO: test database connection: " + options.getDatabaseNameToTest());
73 throw new IllegalArgumentException("Unsupported INFO_TYPE: " + infoType);
78 private void printResource(String fileName) {
79 try (BufferedReader reader = new BufferedReader(new InputStreamReader(getClass().getClassLoader().getResourceAsStream(fileName)))) {
81 String line = reader.readLine();
88 } catch (Exception e) {
89 log.log(Level.SEVERE, "Unable to print this info. Please see our website for it: " + Constants.WEBSITE, e);
93 private void println(String line) {