# HG changeset patch # User František Kučera # Date 1431805372 -7200 # Node ID f4d879cbcee17ae5469837dff763376d91f536aa # Parent 54bacc7ed42bed426cab1a60b8a07037fcd44e1c separate configuration loading into the Loader class diff -r 54bacc7ed42b -r f4d879cbcee1 java/sql-dk/src/info/globalcode/sql/dk/CLIStarter.java --- a/java/sql-dk/src/info/globalcode/sql/dk/CLIStarter.java Sat May 16 20:25:16 2015 +0200 +++ b/java/sql-dk/src/info/globalcode/sql/dk/CLIStarter.java Sat May 16 21:42:52 2015 +0200 @@ -27,6 +27,7 @@ import info.globalcode.sql.dk.configuration.ConfigurationException; import info.globalcode.sql.dk.configuration.DatabaseDefinition; import info.globalcode.sql.dk.configuration.FormatterDefinition; +import info.globalcode.sql.dk.configuration.Loader; import info.globalcode.sql.dk.configuration.NameIdentified; import info.globalcode.sql.dk.formatting.Formatter; import info.globalcode.sql.dk.formatting.FormatterContext; @@ -43,8 +44,6 @@ import java.util.logging.Level; import java.util.logging.LogRecord; import java.util.logging.Logger; -import javax.xml.bind.JAXBContext; -import javax.xml.bind.Unmarshaller; /** * Entry point of the command line interface of SQL-DK. @@ -64,7 +63,8 @@ public static final int EXIT_FORMATTING_ERROR = 7; // doc:formatting error public static final int EXIT_BATCH_ERROR = 8; // doc:batch error private static final Logger log = Logger.getLogger(CLIStarter.class.getName()); - private CLIOptions options; + private final CLIOptions options; + private final Loader configurationLoader = new Loader(); private Configuration configuration; public static void main(String[] args) { @@ -186,7 +186,7 @@ @Override public Configuration getConfiguration() throws ConfigurationException { if (configuration == null) { - configuration = loadConfiguration(); + configuration = configurationLoader.loadConfiguration(); } return configuration; } @@ -206,16 +206,6 @@ } } - private Configuration loadConfiguration() throws ConfigurationException { - try { - JAXBContext jaxb = JAXBContext.newInstance(Configuration.class); - Unmarshaller u = jaxb.createUnmarshaller(); - return (Configuration) u.unmarshal(Constants.CONFIG_FILE); - } catch (Exception e) { - throw new ConfigurationException("Unable to load configuration from " + Constants.CONFIG_FILE, e); - } - } - private void generateBashCompletion() { if (configuration == null) { log.log(Level.FINER, "Not writing Bash completion helper files. In order to generate these files please run some command which requires configuration."); diff -r 54bacc7ed42b -r f4d879cbcee1 java/sql-dk/src/info/globalcode/sql/dk/configuration/Loader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/sql-dk/src/info/globalcode/sql/dk/configuration/Loader.java Sat May 16 21:42:52 2015 +0200 @@ -0,0 +1,41 @@ +/** + * SQL-DK + * Copyright © 2015 František Kučera (frantovo.cz) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package info.globalcode.sql.dk.configuration; + +import info.globalcode.sql.dk.*; +import javax.xml.bind.JAXBContext; +import javax.xml.bind.Unmarshaller; + +/** + * Configuration loader – deserializes Configuration from the XML file. + * + * @author Ing. František Kučera (frantovo.cz) + */ +public class Loader { + + public Configuration loadConfiguration() throws ConfigurationException { + try { + JAXBContext jaxb = JAXBContext.newInstance(Configuration.class); + Unmarshaller u = jaxb.createUnmarshaller(); + return (Configuration) u.unmarshal(Constants.CONFIG_FILE); + } catch (Exception e) { + throw new ConfigurationException("Unable to load configuration from " + Constants.CONFIG_FILE, e); + } + } + +}