package eu.dnetlib.repos;

import java.util.List;
import java.util.Map;
import java.util.TreeMap;

import org.apache.log4j.Logger;

import eu.dnetlib.domain.data.Repository;
import eu.dnetlib.domain.data.RepositoryInterface;

public class RepoApiSimpleImpl implements RepoApi {
    private static Logger logger = Logger.getLogger(RepoApiSimpleImpl.class);

    @Override
    public Repository getRepository(String id) throws Exception {
        return this.getRepository(null, id);
    }

    @Override
    public Repository getRepository(String officialName, String id)
            throws Exception {
        throw new UnsupportedOperationException();
    }

    @Override
    public String storeRepository(Repository repo, String datatype,
                                  List<RepositoryInterface> interfacesToRegister) throws Exception {
        throw new UnsupportedOperationException();
    }

    @Override
    public String editRepository(Repository repo, String officialNameOld,
                                 String idOld, String datatype) throws Exception {
        throw new UnsupportedOperationException();
    }

    @Override
    public TreeMap<String, List<Map<String, String>>> getRepositoriesByCountry(
            String collectedFrom) throws Exception {

        throw new UnsupportedOperationException();
    }

    @Override
    public Map<String, List<Repository>> getRepositoriesPerCountry(String collectedFrom) throws Exception {
        throw new UnsupportedOperationException();
    }

    @Override
    public List<Repository> getRepositoriesOfCountry(String collectedFrom, String country) throws Exception {
        throw new UnsupportedOperationException();
    }

    @Override
    public boolean updateRepositoryInterfaceCompliance(String officialName,
                                                       String datasourceId, String interfaceId, String desiredCompliance,
                                                       String set, String baseUrl, String oldId) throws Exception {

        throw new UnsupportedOperationException();
    }

    @Override
    public List<Repository> getRepositoriesOfUser(String user_mail, Boolean repoAdmin)
            throws Exception {

        throw new UnsupportedOperationException();
    }

    @Override
    public boolean repoIsCompliant(String officialName) throws Exception {

        throw new UnsupportedOperationException();
    }

    @Override
    public Map<String, String> getRepoCompatibility(String officialName,
                                                    String datasourceId) throws Exception {

        throw new UnsupportedOperationException();
    }

    @Override
    public List<String> getUrlsOfRepos(String user_mail, Boolean repoAdmin)
            throws Exception {

        throw new UnsupportedOperationException();
    }

    @Override
    public boolean insertPubFileInterface(String dsId, RepositoryInterface iFace) throws Exception {
        throw new UnsupportedOperationException();
    }

    @Override
    public boolean updatePubFileInterface(String dsId, RepositoryInterface iFace) throws Exception {
        throw new UnsupportedOperationException();
    }

    @Override
    public Map<String, Repository> getRepositoriesAsMap(String collectedFrom) throws Exception {
        throw new UnsupportedOperationException();
    }

    @Override
    public List<Repository> getRepositories(String collectedFrom) throws Exception {
        throw new UnsupportedOperationException();
    }

    @Override
    public String getNextScheduledExecution(String mode) throws Exception {
        throw new UnsupportedOperationException();
    }

    @Override
    public String getListLatestUpdate(String mode) throws Exception {
        throw new UnsupportedOperationException();
    }

    @Override
    public List<Repository> getReposByIds(List<String> datasourceIds) throws Exception {
        throw new UnsupportedOperationException();
    }

    @Override
    public void getRepositoryStats(Repository repo) throws Exception {

    }

    @Override
    public String updateRepositoryInformation(Repository repo) throws Exception {
        throw new UnsupportedOperationException();
    }

    @Override
    public String deleteRepositoryInterfaces(String dsId, List<RepositoryInterface> interfaces) throws Exception {
        throw new UnsupportedOperationException();
    }

    @Override
    public void deleteRepositoryInterfacesWithoutChecks(String dsId, List<RepositoryInterface> interfaces, String datatype) throws Exception {

    }

    @Override
    public String updateRepositoryInterfaces(String dsId, List<RepositoryInterface> interfaces, List<RepositoryInterface> interfacesOld, String datatype, List<RepositoryInterface> interfacesToRegister) throws Exception {
        throw new UnsupportedOperationException();
    }

    @Override
    public RepositoryInterface updateRepositoryInterfaceWithoutChecks(String dsId, RepositoryInterface iFace, String datatype) throws Exception {
        throw new UnsupportedOperationException();
    }

    @Override
    public String insertRepositoryInterfaces(String dsId, List<RepositoryInterface> interfaces, List<RepositoryInterface> interfacesOld, String datatype, List<RepositoryInterface> interfacesToRegister) throws Exception {
        throw new UnsupportedOperationException();
    }

    @Override
    public RepositoryInterface insertRepositoryInterfaceWithoutChecks(String dsId, RepositoryInterface iFace, String datatype) throws Exception {
        throw new UnsupportedOperationException();
    }

    @Override
    public boolean unregisterRepository(Repository repo) throws Exception {
        throw new UnsupportedOperationException();
    }

    @Override
    public List<Map<String, String>> getRegisteredReposByOthers(String string) {
        throw new UnsupportedOperationException();
    }

    @Override
    public List<Map<String, String>> getRepositoriesOfUser(String user_mail) throws Exception {
        throw new UnsupportedOperationException();
    }

}