package de.is24.infrastructure.gridfs.http.repos;
import com.mongodb.DBObject;
import de.is24.infrastructure.gridfs.http.domain.Container;
import de.is24.infrastructure.gridfs.http.domain.FileInfo;
import de.is24.infrastructure.gridfs.http.domain.FolderInfo;
import de.is24.infrastructure.gridfs.http.domain.RepoEntry;
import de.is24.infrastructure.gridfs.http.domain.RepoType;
import de.is24.infrastructure.gridfs.http.domain.SortField;
import de.is24.infrastructure.gridfs.http.domain.SortOrder;
import java.util.Date;
import java.util.List;
public interface RepositoryInfoProvider {
Container<FolderInfo> getRepos(SortField sortBy, SortOrder sortOrder);
Container<FolderInfo> getArchs(String reponame, SortField sortBy, SortOrder sortOrder);
Container<FileInfo> getFileInfo(String repoName, String arch, SortField sortBy, SortOrder sortOrder);
Container<FileInfo> find(String filenameRegex, String repo, String arch, SortField sortBy, SortOrder sortOrder);
Container<FileInfo> find(String filenameRegex, String repo, SortField sortBy, SortOrder sortOrder);
Container<FileInfo> find(String filenameRegex, SortField sortBy, SortOrder sortOrder);
RepoType[] getValidRepoTypes();
Iterable<DBObject> getReposAggregation(SortField sortBy, SortOrder sortOrder);
List<RepoEntry> find(String repoNameRegex, String tag, Date newer, Date older);
List<RepoEntry> find(String repoNameRegex, Date newer, Date older);
List<RepoEntry> find(String repoNameRegex);
boolean isExternalRepo(String repoName);
String getRedirectUrl(String repoName);
String getRedirectUrl(String repoName, String arch);
}