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

com.apollographql.apollo3.runtime.java.internal.DefaultApolloCall Maven / Gradle / Ivy

There is a newer version: 4.0.0-beta.7
Show newest version
package com.apollographql.apollo3.runtime.java.internal;

import com.apollographql.apollo3.api.ApolloRequest;
import com.apollographql.apollo3.api.ExecutionContext;
import com.apollographql.apollo3.api.Operation;
import com.apollographql.apollo3.api.http.HttpHeader;
import com.apollographql.apollo3.api.http.HttpMethod;
import com.apollographql.apollo3.runtime.java.ApolloCall;
import com.apollographql.apollo3.runtime.java.ApolloCallback;
import com.apollographql.apollo3.runtime.java.ApolloClient;
import com.apollographql.apollo3.runtime.java.ApolloDisposable;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.util.ArrayList;
import java.util.List;

public class DefaultApolloCall implements ApolloCall {
  private final ApolloClient apolloClient;
  private final Operation operation;
  private ExecutionContext executionContext = ExecutionContext.Empty;
  private HttpMethod httpMethod;
  private List httpHeaders;
  private Boolean sendApqExtensions;
  private Boolean sendDocument;
  private Boolean enableAutoPersistedQueries;
  private Boolean canBeBatched;

  public DefaultApolloCall(ApolloClient apolloClient, Operation operation) {
    this.apolloClient = apolloClient;
    this.operation = operation;
  }

  @Override public ApolloDisposable enqueue(@NotNull ApolloCallback callback) {
    ApolloRequest apolloRequest = new ApolloRequest.Builder<>(operation)
        .executionContext(executionContext)
        .httpMethod(httpMethod)
        .httpHeaders(httpHeaders)
        .sendApqExtensions(sendApqExtensions)
        .sendDocument(sendDocument)
        .enableAutoPersistedQueries(enableAutoPersistedQueries)
        .canBeBatched(canBeBatched)
        .build();

    return apolloClient.execute(apolloRequest, callback);
  }

  @NotNull @Override public ExecutionContext getExecutionContext() {
    return executionContext;
  }

  @Nullable @Override public HttpMethod getHttpMethod() {
    return httpMethod;
  }

  @Nullable @Override public List getHttpHeaders() {
    return httpHeaders;
  }

  @Nullable @Override public Boolean getSendApqExtensions() {
    return sendApqExtensions;
  }

  @Nullable @Override public Boolean getSendDocument() {
    return sendDocument;
  }

  @Nullable @Override public Boolean getEnableAutoPersistedQueries() {
    return enableAutoPersistedQueries;
  }

  @Nullable @Override public Boolean getCanBeBatched() {
    return canBeBatched;
  }

  @Override public ApolloCall addExecutionContext(@NotNull ExecutionContext executionContext) {
    this.executionContext = this.executionContext.plus(executionContext);
    return this;
  }

  @Override public ApolloCall httpMethod(@Nullable HttpMethod httpMethod) {
    this.httpMethod = httpMethod;
    return this;
  }

  @Override public ApolloCall httpHeaders(@Nullable List list) {
    this.httpHeaders = list;
    return this;
  }

  @Override public ApolloCall addHttpHeader(@NotNull String name, @NotNull String value) {
    if (this.httpHeaders == null) {
      this.httpHeaders = new ArrayList<>();
    }
    this.httpHeaders.add(new HttpHeader(name, value));
    return this;
  }

  @Override public ApolloCall sendApqExtensions(@Nullable Boolean sendApqExtensions) {
    this.sendApqExtensions = sendApqExtensions;
    return this;
  }

  @Override public ApolloCall sendDocument(@Nullable Boolean sendDocument) {
    this.sendDocument = sendDocument;
    return this;
  }

  @Override public ApolloCall enableAutoPersistedQueries(@Nullable Boolean enableAutoPersistedQueries) {
    this.enableAutoPersistedQueries = enableAutoPersistedQueries;
    return this;
  }

  @Override public ApolloCall canBeBatched(@Nullable Boolean canBeBatched) {
    this.canBeBatched = canBeBatched;
    return this;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy