All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.rapidgraphql.dataloaders.GraphQLBatchLoader Maven / Gradle / Ivy

package org.rapidgraphql.dataloaders;

import org.dataloader.BatchLoader;
import org.dataloader.DataLoader;
import org.dataloader.DataLoaderFactory;

import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionStage;

public abstract class GraphQLBatchLoader extends AbstractGraphQLBatchLoader implements BatchLoader {

    public GraphQLBatchLoader() {}
    public GraphQLBatchLoader(String dataLoaderName) {
        super(dataLoaderName);
    }
    /**
     * This method is called by DataLoader framework to load batch of entities
     * We recommend to implement synchronous variant of this: loadSync
     * @param keys the collection of keys to load
     *
     * @return a promise of the values for those keys in the same order
     */
    @Override
    public CompletionStage> load(List keys) {
        return CompletableFuture.supplyAsync(() -> syncLoad(keys));
    }

    abstract public List syncLoad(List keys);

    @Override
    protected DataLoader createNewDataLoader() {
        return DataLoaderFactory.newDataLoader(this, getDataLoaderOptions());
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy