package org.gbif.occurrence.processor;
import org.gbif.occurrence.common.identifier.UniqueIdentifier;
import org.gbif.occurrence.persistence.api.Fragment;
import org.gbif.occurrence.persistence.api.FragmentCreationResult;
import org.gbif.occurrence.persistence.api.OccurrenceKeyPersistenceService;
import org.gbif.occurrence.persistence.api.FragmentPersistenceService;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class FragmentPersistenceServiceMock implements FragmentPersistenceService {
private OccurrenceKeyPersistenceService occurrenceKeyService;
private Map<Integer, Fragment> cache = new HashMap<Integer, Fragment>();
public FragmentPersistenceServiceMock(OccurrenceKeyPersistenceService occurrenceKeyService) {
this.occurrenceKeyService = occurrenceKeyService;
}
@Override
public Fragment get(Integer key) {
return cache.get(key);
}
@Override
public void update(Fragment fragment) {
cache.put(fragment.getKey(), fragment);
}
@Override
public FragmentCreationResult insert(Fragment fragment, Set<UniqueIdentifier> uniqueIds) {
Integer key = occurrenceKeyService.generateKey(uniqueIds).getKey();
fragment.setKey(key);
cache.put(key, fragment);
return new FragmentCreationResult(fragment, true);
}
}