// 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.environment.ResourceFolder;
import sft.environment.TargetFolder;
package sft;


public class ProjectFolder {

    public static final String MAVEN_CLASSES_TEST_PATH = "target/test-classes/";
    public static final String MAVEN_SOURCES_TEST_PATH = "src/test/java/";

    private String sourcesTest = MAVEN_SOURCES_TEST_PATH;
    private String classesTest = MAVEN_CLASSES_TEST_PATH;

    public void setSourcesTest(String pathToSourcesTest){
        this.sourcesTest = pathToSourcesTest;
    }

    public void setClassesTest(String pathToClassesTest){
        this.classesTest = pathToClassesTest;
    }

    public String getClassesTestPath() {
        return classesTest;
    }

    public ResourceFolder getResourceFolder() {
        return new ResourceFolder(toProjectPath(), sourcesTest);
    }

// 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/ProjectFolder.java
import sft.environment.ResourceFolder;
import sft.environment.TargetFolder;

package sft;


public class ProjectFolder {

    public static final String MAVEN_CLASSES_TEST_PATH = "target/test-classes/";
    public static final String MAVEN_SOURCES_TEST_PATH = "src/test/java/";

    private String sourcesTest = MAVEN_SOURCES_TEST_PATH;
    private String classesTest = MAVEN_CLASSES_TEST_PATH;

    public void setSourcesTest(String pathToSourcesTest){
        this.sourcesTest = pathToSourcesTest;
    }

    public void setClassesTest(String pathToClassesTest){
        this.classesTest = pathToClassesTest;
    }

    public String getClassesTestPath() {
        return classesTest;
    }

    public ResourceFolder getResourceFolder() {
        return new ResourceFolder(toProjectPath(), sourcesTest);
    }

    public TargetFolder getTargetFolder(String path ){