// 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;
                return ignoredClass;
            case FAILED:
                return failedClass;
            default:
            case SUCCEEDED:
                return successClass;
        }
    }

    public String applyOnFixtures(List<FixtureCallResult> fixtureCallResults) {
        String result = "";
        for (FixtureCallResult fixture : fixtureCallResults) {
            result += generateFixtureCall(fixture);
        }
        return result;
    }

    public String applyOnScenarios(List<ScenarioResult> scenarioResults) {
        String scenarioTxt = "";
        for (ScenarioResult scenarioResult : scenarioResults) {
            scenarioTxt += applyOnScenario(scenarioResult);
        }
        return scenarioTxt;

    }

    public void setReportFolder(String targetPath) {
        reportFolder = configuration.getProjectFolder().getTargetFolder(targetPath);
    }

// 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;

                return ignoredClass;
            case FAILED:
                return failedClass;
            default:
            case SUCCEEDED:
                return successClass;
        }
    }

    public String applyOnFixtures(List<FixtureCallResult> fixtureCallResults) {
        String result = "";
        for (FixtureCallResult fixture : fixtureCallResults) {
            result += generateFixtureCall(fixture);
        }
        return result;
    }

    public String applyOnScenarios(List<ScenarioResult> scenarioResults) {
        String scenarioTxt = "";
        for (ScenarioResult scenarioResult : scenarioResults) {
            scenarioTxt += applyOnScenario(scenarioResult);
        }
        return scenarioTxt;

    }

    public void setReportFolder(String targetPath) {
        reportFolder = configuration.getProjectFolder().getTargetFolder(targetPath);
    }

    public TargetFolder getReportFolder() {