Не проходит 3 последние проверки. Помогите понять почему.
package com.javarush.task.task31.task3111;
import java.io.IOException;
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;
import java.util.ArrayList;
import java.util.List;
public class SearchFileVisitor extends SimpleFileVisitor<Path> {
private String partOfName;
private String partOfContent;
private int minSize;
private int maxSize;
private List<Path> foundFiles = new ArrayList<>();
private boolean enablePartOfName;
private boolean enablePartOfContent;
private boolean enableMinSize;
private boolean enableMaxSize;
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
if (maxSize == 0) maxSize = Integer.MAX_VALUE;
byte[] content = Files.readAllBytes(file);
String fileName = file.getFileName().toString();
String contentString = new String(content);
boolean matchesName = !enablePartOfName || (partOfName != null && fileName.contains(partOfName));
boolean matchesContent = !enablePartOfContent || (partOfContent != null && contentString.contains(partOfContent));
boolean matchesSize = (!enableMinSize || file.toFile().length() > minSize) && (!enableMaxSize || file.toFile().length() < maxSize);
if (matchesName && matchesContent && matchesSize) {
foundFiles.add(file);
}
return FileVisitResult.CONTINUE;
}
public void setPartOfName(String partOfName) {
this.partOfName = partOfName;
enablePartOfName = true;
}
public void setPartOfContent(String partOfContent) {
this.partOfContent = partOfContent;
enablePartOfContent = true;
}
public void setMinSize(int minSize) {
this.minSize = minSize;
enableMinSize = true;
}
public void setMaxSize(int maxSize) {
this.maxSize = maxSize;
enableMaxSize = true;
}
public List<Path> getFoundFiles() {
return foundFiles;
}
}