package eu.europeana.cloud.service.uis;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import eu.europeana.cloud.common.exceptions.ProviderDoesNotExistException;
import eu.europeana.cloud.common.model.DataProvider;
import eu.europeana.cloud.common.model.DataProviderProperties;
import eu.europeana.cloud.common.response.ResultSlice;
import eu.europeana.cloud.service.uis.dao.InMemoryDataProviderDAO;
import eu.europeana.cloud.service.uis.exception.ProviderAlreadyExistsException;
/**
* InMemoryContentServiceImpl
*/
@Service
public class InMemoryDataProviderService implements DataProviderService {
@Autowired
private InMemoryDataProviderDAO dataProviderDAO;
private static final Logger LOGGER = LoggerFactory.getLogger(InMemoryDataProviderService.class);
/**
* Creates a new instance of this class.
*/
public InMemoryDataProviderService() {
// nothing to do
}
/**
*
* Creates a new instance of this class.
*
* @param dataProviderDAO
*/
public InMemoryDataProviderService(InMemoryDataProviderDAO dataProviderDAO) {
LOGGER.info("InMemoryDataProviderService starting...");
this.dataProviderDAO = dataProviderDAO;
LOGGER.info("InMemoryDataProviderService started successfully.");
}
@Override
public ResultSlice<DataProvider> getProviders(String thresholdProviderId, int limit) {
LOGGER.info("getProviders() providerId='{}', limit='{}'", thresholdProviderId, limit);
if (thresholdProviderId != null) {
throw new UnsupportedOperationException("Paging with threshold provider id is not supported");
}
List<DataProvider> providers = dataProviderDAO.getProviders(limit);
return new ResultSlice<DataProvider>(null, providers);
}
@Override
public DataProvider getProvider(String providerId) throws ProviderDoesNotExistException {
LOGGER.info("getProvider() providerId='{}'", providerId);
return dataProviderDAO.getProvider(providerId);
}
@Override
public DataProvider createProvider(String providerId, DataProviderProperties properties)
throws ProviderAlreadyExistsException {
LOGGER.info("createProvider() providerId='{}', properties='{}'", providerId, properties);
return dataProviderDAO.createProvider(providerId, properties);
}
@Override
public DataProvider updateProvider(String providerId, DataProviderProperties properties)
throws ProviderDoesNotExistException {
LOGGER.info("updateProvider() providerId='{}', properties='{}'", providerId, properties);
return dataProviderDAO.updateProvider(providerId, properties);
}
}