package eu.dnetlib.openaire.common; import java.io.IOException; import java.util.List; import java.util.Map; import eu.dnetlib.enabling.datasources.common.DsmException; import eu.dnetlib.enabling.datasources.common.DsmForbiddenException; import eu.dnetlib.openaire.context.Context; import eu.dnetlib.openaire.dsm.dao.utils.IndexDsInfo; import eu.dnetlib.openaire.dsm.domain.ApiDetails; import eu.dnetlib.openaire.dsm.domain.DatasourceDetails; public interface ISClient { IndexDsInfo calculateCurrentIndexDsInfo() throws DsmException; String getObjectStoreId(String dsId) throws DsmException; Map getFunderContextMap() throws IOException; Map getCommunityContextMap() throws IOException; Map getContextMap(final List type) throws IOException; void updateContextParam(String id, String name, String value); void updateContextAttribute(String id, String name, String value); void addConcept(String id, String categoryId, String data); void removeConcept(String id, String categoryId, String conceptId); void updateDatasourceFields(String dsId, Map changes); void addAPIAttribute(String dsId, String apiId, Map changes); void updateAPIField(String dsId, String apiId, Map changes); void registerDS(DatasourceDetails d); void registerAPI(ApiDetails api); void removeAPI(String apiId) throws DsmForbiddenException; void dropCache(); /** * * @param id id of the concept to be updated (i.e. ni::projects::2) * @param name name of the attribute to be updated * @param value new value for the attribute */ void updateConceptAttribute(String id, String name, String value); void updateConceptParam(String id, String name, String value); void updateConceptParamNoEscape(String id, String name, String value); }