package org.gbif.checklistbank.service.mybatis;
import org.gbif.api.model.checklistbank.NameUsageMediaObject;
import org.gbif.api.model.common.paging.Pageable;
import org.gbif.api.model.common.paging.PagingResponse;
import org.gbif.api.service.checklistbank.MultimediaService;
import org.gbif.checklistbank.service.mybatis.mapper.MultimediaMapper;
import org.gbif.checklistbank.utils.MediaTypeUtils;
import java.util.List;
import java.util.Map;
import javax.annotation.Nullable;
import com.google.inject.Inject;
/**
* Implements an ImageService using MyBatis.
*/
public class MultimediaServiceMyBatis extends NameUsageComponentServiceMyBatis<NameUsageMediaObject>
implements MultimediaService {
@Inject
MultimediaServiceMyBatis(MultimediaMapper multimediaMapper) {
super(multimediaMapper);
}
@Override
public Map<Integer, List<NameUsageMediaObject>> listRange(int usageKeyStart, int usageKeyEnd) {
throw new UnsupportedOperationException("listRange not supported");
}
@Override
public PagingResponse<NameUsageMediaObject> listByUsage(int usageKey, @Nullable Pageable page) {
PagingResponse<NameUsageMediaObject> result = super.listByUsage(usageKey, page);
//TODO: avoid live interpretations until we store the type properly
for (NameUsageMediaObject m : result.getResults()) {
MediaTypeUtils.detectType(m);
}
return result;
}
}