package org.gbif.ipt.model; import org.gbif.utils.file.ClosableReportingIterator; import java.io.File; import java.io.IOException; import java.util.Date; import java.util.List; import java.util.Set; /** * A file based data source for the IPT. */ public interface FileSource extends Source { File getFile(); void setFile(File file); Date getLastModified(); void setLastModified(Date lastModified); long getFileSize(); int getRows(); String getPreferredFileSuffix(); /** * @return list of skipped, empty rows */ Set<Integer> analyze() throws IOException; ClosableReportingIterator<String[]> rowIterator(); List<String> columns(); }