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

com.tvd12.ezyhttp.server.graphql.GraphQLDataFetcherManager Maven / Gradle / Ivy

The newest version!
package com.tvd12.ezyhttp.server.graphql;

import com.tvd12.ezyfox.builder.EzyBuilder;

import java.util.HashMap;
import java.util.Map;

@SuppressWarnings("rawtypes")
public class GraphQLDataFetcherManager {

    private final Map dataFetchers;

    protected GraphQLDataFetcherManager(Builder builder) {
        this.dataFetchers = builder.dataFetchers;
    }

    public GraphQLDataFetcher getDataFetcher(String queryName) {
        return dataFetchers.get(queryName);
    }

    public static Builder builder() {
        return new Builder();
    }

    public static class Builder implements EzyBuilder {

        private final Map dataFetchers = new HashMap<>();

        public Builder addDataFetcher(Object fetcher) {
            if (fetcher instanceof GraphQLDataFetcher) {
                GraphQLDataFetcher f = (GraphQLDataFetcher) fetcher;
                return addDataFetcher(f.getQueryName(), f);
            }
            return this;
        }

        public Builder addDataFetcher(String queryName, GraphQLDataFetcher fetcher) {
            this.dataFetchers.put(queryName, fetcher);
            return this;
        }

        @Override
        public GraphQLDataFetcherManager build() {
            return new GraphQLDataFetcherManager(this);
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy