// Path: sft-core/src/main/java/sft/environment/TargetFolder.java
// public class TargetFolder extends ResourceFolder {
//     public TargetFolder(String toProjectPath, String path) {
//         super(toProjectPath, path);
//     }
// 
//     public File createFileFromClass(Class<?> aClass, String extension) {
//         String filePath = getFilePath(aClass, extension);
//         makeDir(filePath);
//         return getFile(filePath);
//     }
// 
//     public List<String> copyFromResources(String fileName) throws IOException {
//         try {
//             final File targetDirectory = ensureTargetDirectoryExists();
//             final URL resource = this .getClass().getClassLoader().getResource(fileName);
//             final List<String> paths ;
//             if( resource == null ){
//                 throw new RuntimeException("Can't find resource \""+fileName+ "\"; ensure this resource exists");
//             }else if (resource.getProtocol().equals("jar")) {
//                 paths = new FromJar(resource).copy(targetDirectory);
//             } else {
//                 paths = new FromDirectory(resource).copy(targetDirectory);
//             }
//             Collections.sort(paths);
//             return paths;
//         } catch (URISyntaxException e) {
//             throw new RuntimeException(e);
//         }
//     }
// 
//     private void makeDir(String path) {
//         File parentDirectory = ensureTargetDirectoryExists();
//         for (String file : path.split("/")) {
//             if (!file.contains(".")) {
//                 parentDirectory = new File(parentDirectory, file);
//                 if (!parentDirectory.exists()) {
//                     parentDirectory.mkdir();
//                 }
//             }
//         }
//     }
// 
//     private File ensureTargetDirectoryExists() {
//         final File targetDirectory = new File(getResourceFolder() + path);
//         if (!targetDirectory.exists()) {
//             targetDirectory.mkdir();
//         }
//         return targetDirectory;
//     }
// }


import sft.*;
import sft.decorators.*;
import sft.environment.TargetFolder;
import sft.report.decorators.*;
import sft.result.*;
import java.io.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
    public String contextInstructionTemplate =
            "          <div>\n" +
                    "            <span>@@@instruction.text@@@</span>\n" +
                    "          </div>\n";

    public String relatedUseCasesTitleTemplate =
            "        <div class=\"panel-heading\">\n" +
                    "          <h3>@@@relatedUseCasesTitle@@@</h3>\n" +
                    "        </div>\n";
    public String relatedUseCasesTemplate =
            "      <div class=\"panel panel-default relatedUseCases\">\n" +
                    "@@@relatedUseCasesTitleTemplates@@@" +
                    "        <div class=\"panel-body\">\n" +
                    "          <ul>\n" +
                    "@@@relatedUseCaseTemplates@@@" +
                    "          </ul>\n" +
                    "        </div>\n" +
                    "      </div>\n";
    public String relatedUseCaseTemplate =
            "            <li class=\"relatedUseCase @@@relatedUseCase.issue@@@\">\n" +
                    "              <a href=\"@@@relatedUseCase.link@@@\"><span>@@@relatedUseCase.name@@@</span></a>\n" +
                    "            </li>\n";
    public String parameterTemplate = "<i class=\"value\">@@@parameter.value@@@</i>";
    public String ignoredClass = "ignored";
    public String failedClass = "failed";
    public String successClass = "succeeded";
    private HtmlResources htmlResources;
    private Map<Class<? extends Decorator>, DecoratorReportImplementation>  decorators= new HashMap<Class<? extends Decorator>, DecoratorReportImplementation>();


// Path: sft-core/src/main/java/sft/environment/TargetFolder.java
// public class TargetFolder extends ResourceFolder {
//     public TargetFolder(String toProjectPath, String path) {
//         super(toProjectPath, path);
//     }
// 
//     public File createFileFromClass(Class<?> aClass, String extension) {
//         String filePath = getFilePath(aClass, extension);
//         makeDir(filePath);
//         return getFile(filePath);
//     }
// 
//     public List<String> copyFromResources(String fileName) throws IOException {
//         try {
//             final File targetDirectory = ensureTargetDirectoryExists();
//             final URL resource = this .getClass().getClassLoader().getResource(fileName);
//             final List<String> paths ;
//             if( resource == null ){
//                 throw new RuntimeException("Can't find resource \""+fileName+ "\"; ensure this resource exists");
//             }else if (resource.getProtocol().equals("jar")) {
//                 paths = new FromJar(resource).copy(targetDirectory);
//             } else {
//                 paths = new FromDirectory(resource).copy(targetDirectory);
//             }
//             Collections.sort(paths);
//             return paths;
//         } catch (URISyntaxException e) {
//             throw new RuntimeException(e);
//         }
//     }
// 
//     private void makeDir(String path) {
//         File parentDirectory = ensureTargetDirectoryExists();
//         for (String file : path.split("/")) {
//             if (!file.contains(".")) {
//                 parentDirectory = new File(parentDirectory, file);
//                 if (!parentDirectory.exists()) {
//                     parentDirectory.mkdir();
//                 }
//             }
//         }
//     }
// 
//     private File ensureTargetDirectoryExists() {
//         final File targetDirectory = new File(getResourceFolder() + path);
//         if (!targetDirectory.exists()) {
//             targetDirectory.mkdir();
//         }
//         return targetDirectory;
//     }
// }


// Path: sft-core/src/main/java/sft/report/HtmlReport.java
import sft.*;
import sft.decorators.*;
import sft.environment.TargetFolder;
import sft.report.decorators.*;
import sft.result.*;
import java.io.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;

    public String contextInstructionTemplate =
            "          <div>\n" +
                    "            <span>@@@instruction.text@@@</span>\n" +
                    "          </div>\n";

    public String relatedUseCasesTitleTemplate =
            "        <div class=\"panel-heading\">\n" +
                    "          <h3>@@@relatedUseCasesTitle@@@</h3>\n" +
                    "        </div>\n";
    public String relatedUseCasesTemplate =
            "      <div class=\"panel panel-default relatedUseCases\">\n" +
                    "@@@relatedUseCasesTitleTemplates@@@" +
                    "        <div class=\"panel-body\">\n" +
                    "          <ul>\n" +
                    "@@@relatedUseCaseTemplates@@@" +
                    "          </ul>\n" +
                    "        </div>\n" +
                    "      </div>\n";
    public String relatedUseCaseTemplate =
            "            <li class=\"relatedUseCase @@@relatedUseCase.issue@@@\">\n" +
                    "              <a href=\"@@@relatedUseCase.link@@@\"><span>@@@relatedUseCase.name@@@</span></a>\n" +
                    "            </li>\n";
    public String parameterTemplate = "<i class=\"value\">@@@parameter.value@@@</i>";
    public String ignoredClass = "ignored";
    public String failedClass = "failed";
    public String successClass = "succeeded";
    private HtmlResources htmlResources;
    private Map<Class<? extends Decorator>, DecoratorReportImplementation>  decorators= new HashMap<Class<? extends Decorator>, DecoratorReportImplementation>();


    private TargetFolder reportFolder;