// Path: dbpatch-core/src/main/java/org/jsoftware/dbpatch/command/ListCommand.java
// public class ListCommand extends AbstractListCommand<Patch> {
// 
//     public ListCommand(EnvSettings envSettings) {
//         super(envSettings);
//     }
// 
// 
//     protected List<Patch> generateList(List<Patch> inList) throws IOException {
//         ApplyStrategy strategy = configurationEntry.getApplyStarters();
//         log.debug("Apply strategy is " + strategy.getClass().getSimpleName() + ", configurationId:" + configurationEntry.getId());
//         List<Patch> patchesToApply = strategy.filter(manager.getConnection(), inList);
//         StringBuilder sb = new StringBuilder("Patch list:\n");
//         for (Patch p : inList) {
//             getConfigurationEntry().getPatchParser().parse(p, getConfigurationEntry());
//             sb.append('\t');
//             if (p.getDbState() == AbstractPatch.DbState.COMMITTED) {
//                 sb.append('*');
//             }
//             if (p.getDbState() == AbstractPatch.DbState.IN_PROGRESS) {
//                 sb.append('P');
//             }
//             if (p.getDbState() == AbstractPatch.DbState.NOT_AVAILABLE) {
//                 if (patchesToApply.contains(p)) {
//                     sb.append('+');
//                 } else {
//                     sb.append('-');
//                 }
//             }
//             sb.append(' ').append(p.getName());
//             for (int a = p.getName().length(); a < SPACES; a++) {
//                 sb.append(' ');
//             }
//             sb.append("  statements:").append(p.getStatementCount());
//             sb.append('\n');
//         }
//         log.info(sb.toString().trim());
//         log.info("Patches to apply: " + patchesToApply.size() + " using configuration:" + configurationEntry.getId());
//         return patchesToApply;
//     }
// 
// 
// 
//     protected void executeInternal() throws Exception {
//         getList();
//     }
// 
// }
// 
// Path: dbpatch-core/src/main/java/org/jsoftware/dbpatch/config/EnvSettings.java
// public class EnvSettings {
//     private final String prefix;
// 
//     private EnvSettings(String prefix) {
//         this.prefix = prefix;
//     }
// 
//     public String getDbPatchFile() {
//         return prefix + "dbpatch.file";
//     }
// 
//     public String getDbPatchConfiguration() {
//         return prefix + "dbpatch.configuration";
//     }
// 
//     public String getDbPatchStop() {
//         return prefix + "dbpatch.stop";
//     }
// 
//     public String getDbPatchSingle() {
//         return prefix + "dbpatch.single";
//     }
// 
//     public String getLogLevel() {
//         return prefix + "dbpatch.logLevel";
//     }
// 
//     public static EnvSettings standalone() {
//         return new EnvSettings("");
//     }
// 
//     public static EnvSettings maven() {
//         return new EnvSettings("maven.");
//     }
// 
//     public static EnvSettings gradle() {
//         return new EnvSettings("gradle.");
//     }
// 
// }


import org.jsoftware.dbpatch.command.ListCommand;
import org.jsoftware.dbpatch.config.EnvSettings;
package org.jsoftware.dbpatch.maven;



/**
 * Show list of patches
 *
 * @author szalik
 * @goal list
 */
public class ListMojo extends CommandSingleConfMojoAdapter<ListCommand> {


    protected ListMojo() {
// Path: dbpatch-core/src/main/java/org/jsoftware/dbpatch/command/ListCommand.java
// public class ListCommand extends AbstractListCommand<Patch> {
// 
//     public ListCommand(EnvSettings envSettings) {
//         super(envSettings);
//     }
// 
// 
//     protected List<Patch> generateList(List<Patch> inList) throws IOException {
//         ApplyStrategy strategy = configurationEntry.getApplyStarters();
//         log.debug("Apply strategy is " + strategy.getClass().getSimpleName() + ", configurationId:" + configurationEntry.getId());
//         List<Patch> patchesToApply = strategy.filter(manager.getConnection(), inList);
//         StringBuilder sb = new StringBuilder("Patch list:\n");
//         for (Patch p : inList) {
//             getConfigurationEntry().getPatchParser().parse(p, getConfigurationEntry());
//             sb.append('\t');
//             if (p.getDbState() == AbstractPatch.DbState.COMMITTED) {
//                 sb.append('*');
//             }
//             if (p.getDbState() == AbstractPatch.DbState.IN_PROGRESS) {
//                 sb.append('P');
//             }
//             if (p.getDbState() == AbstractPatch.DbState.NOT_AVAILABLE) {
//                 if (patchesToApply.contains(p)) {
//                     sb.append('+');
//                 } else {
//                     sb.append('-');
//                 }
//             }
//             sb.append(' ').append(p.getName());
//             for (int a = p.getName().length(); a < SPACES; a++) {
//                 sb.append(' ');
//             }
//             sb.append("  statements:").append(p.getStatementCount());
//             sb.append('\n');
//         }
//         log.info(sb.toString().trim());
//         log.info("Patches to apply: " + patchesToApply.size() + " using configuration:" + configurationEntry.getId());
//         return patchesToApply;
//     }
// 
// 
// 
//     protected void executeInternal() throws Exception {
//         getList();
//     }
// 
// }
// 
// Path: dbpatch-core/src/main/java/org/jsoftware/dbpatch/config/EnvSettings.java
// public class EnvSettings {
//     private final String prefix;
// 
//     private EnvSettings(String prefix) {
//         this.prefix = prefix;
//     }
// 
//     public String getDbPatchFile() {
//         return prefix + "dbpatch.file";
//     }
// 
//     public String getDbPatchConfiguration() {
//         return prefix + "dbpatch.configuration";
//     }
// 
//     public String getDbPatchStop() {
//         return prefix + "dbpatch.stop";
//     }
// 
//     public String getDbPatchSingle() {
//         return prefix + "dbpatch.single";
//     }
// 
//     public String getLogLevel() {
//         return prefix + "dbpatch.logLevel";
//     }
// 
//     public static EnvSettings standalone() {
//         return new EnvSettings("");
//     }
// 
//     public static EnvSettings maven() {
//         return new EnvSettings("maven.");
//     }
// 
//     public static EnvSettings gradle() {
//         return new EnvSettings("gradle.");
//     }
// 
// }


// Path: dbpatch-maven-plugin/src/main/java/org/jsoftware/dbpatch/maven/ListMojo.java
import org.jsoftware.dbpatch.command.ListCommand;
import org.jsoftware.dbpatch.config.EnvSettings;

package org.jsoftware.dbpatch.maven;



/**
 * Show list of patches
 *
 * @author szalik
 * @goal list
 */
public class ListMojo extends CommandSingleConfMojoAdapter<ListCommand> {


    protected ListMojo() {
        super(new ListCommand(EnvSettings.maven()));