ActivityPubStoreRepositoryDefault.java
package org.linkedopenactors.rdfpub.store.rdf4j;
import java.util.Objects;
import java.util.Optional;
import org.apache.commons.rdf.api.IRI;
import org.apache.commons.rdf.api.RDF;
import org.linkedopenactors.rdfpub.domain.commonsrdf.ActivityPubObjectFactory;
import org.linkedopenactors.rdfpub.domain.commonsrdf.ActivityPubStore;
import org.linkedopenactors.rdfpub.store.ActivityPubStoreRepository;
import org.linkedopenactors.rdfpub.store.Store;
import org.linkedopenactors.rdfpub.store.StoreRepository;
import org.springframework.stereotype.Component;
@Component
class ActivityPubStoreRepositoryDefault implements ActivityPubStoreRepository {
private ActivityPubObjectFactory activityPubObjectFactory;
private RDF rdf;
private StoreRepository storeRepository;
public ActivityPubStoreRepositoryDefault(RDF rdf,ActivityPubObjectFactory activityPubObjectFactory, StoreRepository storeRepository) {
this.rdf = rdf;
this.activityPubObjectFactory = activityPubObjectFactory;
this.storeRepository = storeRepository;
}
@Override
public Optional<ActivityPubStore> findActivityPubStore(IRI storeOwner) {
return storeRepository.findStore(storeOwner).map(store->new ActivityPubStoreDefault(rdf, storeOwner, store, activityPubObjectFactory));
}
@Override
public ActivityPubStore createActivityPubStore(IRI storeOwner) {
if(Objects.isNull(storeOwner)) {
throw new IllegalStateException("storeName is mandatory!");
}
Store store = storeRepository.createStore(storeOwner);
return new ActivityPubStoreDefault(rdf, storeOwner, store, activityPubObjectFactory);
}
@Override
public void shutdown() {
storeRepository.shutdown();
}
}