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

com.apollographql.apollo.api.ResponseReader Maven / Gradle / Ivy

There is a newer version: 3.4.2
Show newest version
/**
 * Copyright 2018-2019 Amazon.com,
 * Inc. or its affiliates. All Rights Reserved.
 *
 * Licensed under the Amazon Software License (the "License").
 * You may not use this file except in compliance with the
 * License. A copy of the License is located at
 *
 *     http://aws.amazon.com/asl/
 *
 * or in the "license" file accompanying this file. This file is
 * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, express or implied. See the License
 * for the specific language governing permissions and
 * limitations under the License.
 */

package com.apollographql.apollo.api;

import java.util.List;

/*
 * ResponseReader is an abstraction for reading GraphQL fields.
 */
public interface ResponseReader {

  String readString(ResponseField field);

  Integer readInt(ResponseField field);

  Long readLong(ResponseField field);

  Double readDouble(ResponseField field);

  Boolean readBoolean(ResponseField field);

   T readObject(ResponseField field, ObjectReader objectReader);

   List readList(ResponseField field, ListReader listReader);

   T readCustomType(ResponseField.CustomTypeField field);

   T readConditional(ResponseField field, ConditionalTypeReader conditionalTypeReader);

  interface ObjectReader {
    T read(ResponseReader reader);
  }

  interface ListReader {
    T read(ListItemReader reader);
  }

  interface ConditionalTypeReader {
    T read(String conditionalType, ResponseReader reader);
  }

  interface ListItemReader {

    String readString();

    Integer readInt();

    Long readLong();

    Double readDouble();

    Boolean readBoolean();

     T readCustomType(ScalarType scalarType);

     T readObject(ObjectReader objectReader);

     List readList(ListReader listReader);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy