diff --git a/build.gradle b/build.gradle index 2a6ca19..a0bc131 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ version '1.0' apply plugin: 'java' -sourceCompatibility = 1.6 +sourceCompatibility = 1.7 repositories { mavenLocal() diff --git a/src/main/java/com/refactify/Liquify.java b/src/main/java/com/refactify/Liquify.java index dd42d96..8d26d98 100644 --- a/src/main/java/com/refactify/Liquify.java +++ b/src/main/java/com/refactify/Liquify.java @@ -27,14 +27,26 @@ public class Liquify { public static void main(final String[] args) { ConversionArguments conversionArguments = parser.parseArguments(args); - if(conversionArguments.areValid()) { + if (conversionArguments.areValid()) { convertDatabaseChangeLog(conversionArguments); - } - else { + } else { usagePrinter.printUsage(); } } + public static void convertDatabaseChangeLog(String source, String type, String database) { + ConversionArguments conversionArguments = new ConversionArguments( + source, + ConversionArguments.ConversionType.fromString(type), + database + ); + if (conversionArguments.areValid()) { + convertDatabaseChangeLog(conversionArguments); + } else { + throw new Error("Invalid conversion arguments"); + } + } + private static void convertDatabaseChangeLog(final ConversionArguments conversionArguments) { String targetFileName = targetFileNameBuilder.buildFilename(conversionArguments); try { @@ -46,16 +58,13 @@ private static void convertDatabaseChangeLog(final ConversionArguments conversio set.setFilePath(targetFileName); } serializer.write(changeLog.getChangeSets(), new FileOutputStream(targetFileName)); - } - catch (LiquibaseException e) { + } catch (LiquibaseException e) { System.out.println("There was a problem parsing the source file."); deleteTargetFile(targetFileName); - } - catch (IOException e) { + } catch (IOException e) { System.out.println("There was a problem serializing the source file."); deleteTargetFile(targetFileName); - } - catch(IllegalStateException e) { + } catch (IllegalStateException e) { System.out.println(String.format("Database generator for type '%s' was not found.", conversionArguments.getDatabase())); deleteTargetFile(targetFileName); @@ -65,8 +74,7 @@ private static void convertDatabaseChangeLog(final ConversionArguments conversio private static void deleteTargetFile(final String targetFileName) { try { Files.deleteIfExists(Paths.get(targetFileName)); - } - catch (IOException ioe) { + } catch (IOException ioe) { ioe.printStackTrace(); } } diff --git a/src/main/java/com/refactify/arguments/ConversionArguments.java b/src/main/java/com/refactify/arguments/ConversionArguments.java index 3131fec..1961102 100644 --- a/src/main/java/com/refactify/arguments/ConversionArguments.java +++ b/src/main/java/com/refactify/arguments/ConversionArguments.java @@ -9,6 +9,15 @@ public class ConversionArguments { new String[] {"db2", "derby", "firebird", "h2", "hsql", "informix", "mssql", "mariadb", "mysql", "oracle", "postgresql", "sqlite", "asany", "sybase"}; + public ConversionArguments() { + } + + public ConversionArguments(String source, ConversionType type, String database) { + this.source = source; + this.type = type; + this.database = database; + } + public String getSource() { return source; }