// Path: intellijad/src/java/net/stevechaloner/intellijad/decompilers/jad/JadEngine.java
// public class JadEngine implements DecompilationEngine {
// 
//     @Override
//     public String prepareCommand(@NotNull Project project) {
//         Config config = PluginUtil.getConfig(project);
//         StringBuilder command = new StringBuilder(config.getJadPath()
//                 + " " +
//                 config.renderCommandLinePropertyDescriptors());
//         command.append(" -p ");
//         if (command.indexOf(" -lnc ") == -1 &&
//                 CodeStyle.DEBUGGABLE_STYLE.getName().equals(config.getReformatStyle())) {
//             // technically it wouldn't hurt to have this present twice, but this is neater
//             command.append(" -lnc ");
//         }
//         return command.toString();
//     }
// 
//     @Override
//     public String waterMark() {
//         return IntelliJadResourceBundle.message("message.decompiled-through-intellijad");
//     }
// }


import com.intellij.openapi.project.Project;
import net.stevechaloner.intellijad.decompilers.jad.JadEngine;
import org.jetbrains.annotations.NotNull;
package net.stevechaloner.intellijad.decompilers;


/**
 * Created by Lukasz on 2014-06-10.
 */
public interface DecompilationEngine {
    public final Selector selector = new Selector();

    String prepareCommand(@NotNull Project project);
    String waterMark();

    public static final class Selector {
        private Selector() {}

// Path: intellijad/src/java/net/stevechaloner/intellijad/decompilers/jad/JadEngine.java
// public class JadEngine implements DecompilationEngine {
// 
//     @Override
//     public String prepareCommand(@NotNull Project project) {
//         Config config = PluginUtil.getConfig(project);
//         StringBuilder command = new StringBuilder(config.getJadPath()
//                 + " " +
//                 config.renderCommandLinePropertyDescriptors());
//         command.append(" -p ");
//         if (command.indexOf(" -lnc ") == -1 &&
//                 CodeStyle.DEBUGGABLE_STYLE.getName().equals(config.getReformatStyle())) {
//             // technically it wouldn't hurt to have this present twice, but this is neater
//             command.append(" -lnc ");
//         }
//         return command.toString();
//     }
// 
//     @Override
//     public String waterMark() {
//         return IntelliJadResourceBundle.message("message.decompiled-through-intellijad");
//     }
// }


// Path: intellijad/src/java/net/stevechaloner/intellijad/decompilers/DecompilationEngine.java
import com.intellij.openapi.project.Project;
import net.stevechaloner.intellijad.decompilers.jad.JadEngine;
import org.jetbrains.annotations.NotNull;

package net.stevechaloner.intellijad.decompilers;


/**
 * Created by Lukasz on 2014-06-10.
 */
public interface DecompilationEngine {
    public final Selector selector = new Selector();

    String prepareCommand(@NotNull Project project);
    String waterMark();

    public static final class Selector {
        private Selector() {}

        public DecompilationEngine get(@NotNull Project project) {