package jetbrains.buildServer.tools.fs; import jetbrains.buildServer.tools.ScanFile; import org.jetbrains.annotations.NotNull; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; /** * Created 31.07.13 19:03 * * @author Eugene Petrenko (eugene.petrenko@jetbrains.com) */ public abstract class FSScanFileBase implements ScanFile { protected final File myFile; public FSScanFileBase(@NotNull final File file) { myFile = file; } @NotNull public InputStream openStream() throws FileNotFoundException { return new FileInputStream(myFile); } @NotNull public abstract String getName(); public boolean isFile() { return myFile.isFile(); } @NotNull public Collection<ScanFile> listFiles() { final File[] files = myFile.listFiles(); if (files == null) return Collections.emptyList(); final List<ScanFile> sb = new ArrayList<ScanFile>(); for (File file : files) { sb.add(new FSScanFile(this, file)); } return sb; } @Override public String toString() { return "FSScanFile{name=" + getName() + "}"; } }