package org.batfish.common;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.SortedSet;
import java.util.TreeSet;
import org.batfish.common.util.ComparableStructure;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
public class Directory extends ComparableStructure<String> {
/**
*
*/
private static final long serialVersionUID = 1L;
private SortedSet<Directory> _directories;
private SortedSet<String> _files;
public Directory(Path path) {
super(path.getFileName().toString());
_directories = new TreeSet<>();
_files = new TreeSet<>();
try {
for (Path subPath : Files.newDirectoryStream(path)) {
String name = subPath.getFileName().toString();
if (!name.startsWith(".")) {
if (Files.isDirectory(subPath)) {
Directory dir = new Directory(subPath);
_directories.add(dir);
}
else if (Files.isRegularFile(subPath)) {
_files.add(name);
}
}
}
}
catch (IOException e) {
throw new BatfishException("Could not iterate over path: " + path, e);
}
}
@JsonCreator
public Directory(@JsonProperty(NAME_VAR) String name) {
super(name);
_directories = new TreeSet<>();
_files = new TreeSet<>();
}
public SortedSet<Directory> getDirectories() {
return _directories;
}
public SortedSet<String> getFiles() {
return _files;
}
public void setDirectories(SortedSet<Directory> directories) {
_directories = directories;
}
public void setFiles(SortedSet<String> files) {
_files = files;
}
}