package org.gbif.occurrence.processor; import org.gbif.api.model.occurrence.Occurrence; import org.gbif.api.model.occurrence.VerbatimOccurrence; import org.gbif.occurrence.persistence.api.Fragment; import org.gbif.occurrence.persistence.api.FragmentPersistenceService; import org.gbif.occurrence.persistence.api.OccurrencePersistenceService; import java.util.Iterator; import java.util.List; import java.util.Map; import javax.annotation.Nullable; import com.google.common.collect.Maps; public class OccurrencePersistenceServiceMock implements OccurrencePersistenceService { private final FragmentPersistenceService fragService; private final Map<Integer, Occurrence> cache = Maps.newHashMap(); private final Map<Integer, VerbatimOccurrence> vCache = Maps.newHashMap(); public OccurrencePersistenceServiceMock(FragmentPersistenceService fragService) { this.fragService = fragService; } @Override public Occurrence get(Integer key) { return cache.get(key); } @Nullable @Override public VerbatimOccurrence getVerbatim(Integer key) { return vCache.get(key); } @Override public String getFragment(int key) { Fragment frag = fragService.get(key); return frag == null ? null : String.valueOf(frag.getData()); } @Override public void update(Occurrence occurrence) { cache.put(occurrence.getKey(), occurrence); } @Override public void update(VerbatimOccurrence occurrence) { vCache.put(occurrence.getKey(), occurrence); } @Override public Occurrence delete(int occurrenceKey) { return cache.remove(occurrenceKey); } @Override public void delete(List<Integer> occurrenceKeys) { for (Integer key : occurrenceKeys) { delete(key); } } @Override public Iterator<Integer> getKeysByColumn(byte[] columnValue, String columnName) { throw new UnsupportedOperationException("Not implemented yet"); } }