boolivar/jdoc-test

View on GitHub
jdoc-gradle-plugin-commons/src/main/java/org/bool/jdoc/gradle/JdocAction.java

Summary

Maintainability
A
0 mins
Test Coverage
package org.bool.jdoc.gradle;

import java.io.File;
import java.io.IOException;
import java.io.UncheckedIOException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;

public interface JdocAction {

    void generate(File sourceFile, String baseName, Path outputPath);

    void delete(File sourceFile, String baseName, Path outputPath);

    default void deleteDir(File sourceDir, Path outputPath) {
        if (Files.exists(outputPath)) {
            try {
                Files.walkFileTree(outputPath, new SimpleFileVisitor<Path>() {
                    @Override
                    public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                        Files.delete(file);
                        return super.visitFile(file, attrs);
                    }

                    @Override
                    public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
                        Files.delete(dir);
                        return super.postVisitDirectory(dir, exc);
                    }
                });
            } catch (IOException e) {
                throw new UncheckedIOException("Error traverse: " + outputPath, e);
            }
        }
    }
}