@Override
public void copy(Space space, Path originRoot, Path targetRoot) {
final boolean branchExisted = (repositoryService.getRepository(space, targetRoot) != null);
final org.uberfire.java.nio.file.Path nioTargetRepositoryRoot = Paths.convert(targetRoot);
final org.uberfire.java.nio.file.Path originRepositoryRoot = Paths.convert(originRoot);
ioService.startBatch(nioTargetRepositoryRoot.getFileSystem());
try {
copyFolders(nioTargetRepositoryRoot,
originRepositoryRoot);
copyRootFiles(targetRoot,
originRepositoryRoot);
} finally {
ioService.endBatch();
}
if (!branchExisted) {
fireNewBranchEvent(space,
targetRoot,
nioTargetRepositoryRoot);
}
}