package com.example.fragment_in_fragment.fragment;
import com.apollographql.apollo.api.Field;
import com.apollographql.apollo.api.FragmentResponseFieldMapper;
import com.apollographql.apollo.api.GraphqlFragment;
import com.apollographql.apollo.api.ResponseFieldMapper;
import com.apollographql.apollo.api.ResponseReader;
import com.apollographql.apollo.api.internal.Optional;
import java.io.IOException;
import java.lang.Object;
import java.lang.Override;
import java.lang.String;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import javax.annotation.Generated;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
@Generated("Apollo GraphQL")
public class StarshipFragment implements GraphqlFragment {
public static final String FRAGMENT_DEFINITION = "fragment starshipFragment on Starship {\n"
+ " __typename\n"
+ " id\n"
+ " name\n"
+ " pilotConnection {\n"
+ " __typename\n"
+ " edges {\n"
+ " __typename\n"
+ " node {\n"
+ " __typename\n"
+ " ...pilotFragment\n"
+ " }\n"
+ " }\n"
+ " }\n"
+ "}";
public static final List<String> POSSIBLE_TYPES = Collections.unmodifiableList(Arrays.asList( "Starship"));
private final @Nonnull String __typename;
private final @Nonnull String id;
private final Optional<String> name;
private final Optional<PilotConnection> pilotConnection;
private volatile String $toString;
private volatile int $hashCode;
private volatile boolean $hashCodeMemoized;
public StarshipFragment(@Nonnull String __typename, @Nonnull String id, @Nullable String name,
@Nullable PilotConnection pilotConnection) {
this.__typename = __typename;
this.id = id;
this.name = Optional.fromNullable(name);
this.pilotConnection = Optional.fromNullable(pilotConnection);
}
public @Nonnull String __typename() {
return this.__typename;
}
/**
* The ID of an object
*/
public @Nonnull String id() {
return this.id;
}
/**
* The name of this starship. The common name, such as "Death Star".
*/
public Optional<String> name() {
return this.name;
}
public Optional<PilotConnection> pilotConnection() {
return this.pilotConnection;
}
@Override
public String toString() {
if ($toString == null) {
$toString = "StarshipFragment{"
+ "__typename=" + __typename + ", "
+ "id=" + id + ", "
+ "name=" + name + ", "
+ "pilotConnection=" + pilotConnection
+ "}";
}
return $toString;
}
@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (o instanceof StarshipFragment) {
StarshipFragment that = (StarshipFragment) o;
return this.__typename.equals(that.__typename)
&& this.id.equals(that.id)
&& this.name.equals(that.name)
&& this.pilotConnection.equals(that.pilotConnection);
}
return false;
}
@Override
public int hashCode() {
if (!$hashCodeMemoized) {
int h = 1;
h *= 1000003;
h ^= __typename.hashCode();
h *= 1000003;
h ^= id.hashCode();
h *= 1000003;
h ^= name.hashCode();
h *= 1000003;
h ^= pilotConnection.hashCode();
$hashCode = h;
$hashCodeMemoized = true;
}
return $hashCode;
}
public static final class Mapper implements ResponseFieldMapper<StarshipFragment> {
final PilotConnection.Mapper pilotConnectionFieldMapper = new PilotConnection.Mapper();
final Field[] fields = {
Field.forString("__typename", "__typename", null, false),
Field.forString("id", "id", null, false),
Field.forString("name", "name", null, true),
Field.forObject("pilotConnection", "pilotConnection", null, true, new Field.ObjectReader<PilotConnection>() {
@Override public PilotConnection read(final ResponseReader reader) throws IOException {
return pilotConnectionFieldMapper.map(reader);
}
})
};
@Override
public StarshipFragment map(ResponseReader reader) throws IOException {
final String __typename = reader.read(fields[0]);
final String id = reader.read(fields[1]);
final String name = reader.read(fields[2]);
final PilotConnection pilotConnection = reader.read(fields[3]);
return new StarshipFragment(__typename, id, name, pilotConnection);
}
}
public static class PilotConnection {
private final @Nonnull String __typename;
private final Optional<List<Edge>> edges;
private volatile String $toString;
private volatile int $hashCode;
private volatile boolean $hashCodeMemoized;
public PilotConnection(@Nonnull String __typename, @Nullable List<Edge> edges) {
this.__typename = __typename;
this.edges = Optional.fromNullable(edges);
}
public @Nonnull String __typename() {
return this.__typename;
}
/**
* A list of edges.
*/
public Optional<List<Edge>> edges() {
return this.edges;
}
@Override
public String toString() {
if ($toString == null) {
$toString = "PilotConnection{"
+ "__typename=" + __typename + ", "
+ "edges=" + edges
+ "}";
}
return $toString;
}
@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (o instanceof PilotConnection) {
PilotConnection that = (PilotConnection) o;
return this.__typename.equals(that.__typename)
&& this.edges.equals(that.edges);
}
return false;
}
@Override
public int hashCode() {
if (!$hashCodeMemoized) {
int h = 1;
h *= 1000003;
h ^= __typename.hashCode();
h *= 1000003;
h ^= edges.hashCode();
$hashCode = h;
$hashCodeMemoized = true;
}
return $hashCode;
}
public static final class Mapper implements ResponseFieldMapper<PilotConnection> {
final Edge.Mapper edgeFieldMapper = new Edge.Mapper();
final Field[] fields = {
Field.forString("__typename", "__typename", null, false),
Field.forList("edges", "edges", null, true, new Field.ObjectReader<Edge>() {
@Override public Edge read(final ResponseReader reader) throws IOException {
return edgeFieldMapper.map(reader);
}
})
};
@Override
public PilotConnection map(ResponseReader reader) throws IOException {
final String __typename = reader.read(fields[0]);
final List<Edge> edges = reader.read(fields[1]);
return new PilotConnection(__typename, edges);
}
}
}
public static class Edge {
private final @Nonnull String __typename;
private final Optional<Node> node;
private volatile String $toString;
private volatile int $hashCode;
private volatile boolean $hashCodeMemoized;
public Edge(@Nonnull String __typename, @Nullable Node node) {
this.__typename = __typename;
this.node = Optional.fromNullable(node);
}
public @Nonnull String __typename() {
return this.__typename;
}
/**
* The item at the end of the edge
*/
public Optional<Node> node() {
return this.node;
}
@Override
public String toString() {
if ($toString == null) {
$toString = "Edge{"
+ "__typename=" + __typename + ", "
+ "node=" + node
+ "}";
}
return $toString;
}
@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (o instanceof Edge) {
Edge that = (Edge) o;
return this.__typename.equals(that.__typename)
&& this.node.equals(that.node);
}
return false;
}
@Override
public int hashCode() {
if (!$hashCodeMemoized) {
int h = 1;
h *= 1000003;
h ^= __typename.hashCode();
h *= 1000003;
h ^= node.hashCode();
$hashCode = h;
$hashCodeMemoized = true;
}
return $hashCode;
}
public static final class Mapper implements ResponseFieldMapper<Edge> {
final Node.Mapper nodeFieldMapper = new Node.Mapper();
final Field[] fields = {
Field.forString("__typename", "__typename", null, false),
Field.forObject("node", "node", null, true, new Field.ObjectReader<Node>() {
@Override public Node read(final ResponseReader reader) throws IOException {
return nodeFieldMapper.map(reader);
}
})
};
@Override
public Edge map(ResponseReader reader) throws IOException {
final String __typename = reader.read(fields[0]);
final Node node = reader.read(fields[1]);
return new Edge(__typename, node);
}
}
}
public static class Node {
private final @Nonnull String __typename;
private final @Nonnull Fragments fragments;
private volatile String $toString;
private volatile int $hashCode;
private volatile boolean $hashCodeMemoized;
public Node(@Nonnull String __typename, @Nonnull Fragments fragments) {
this.__typename = __typename;
this.fragments = fragments;
}
public @Nonnull String __typename() {
return this.__typename;
}
public @Nonnull Fragments fragments() {
return this.fragments;
}
@Override
public String toString() {
if ($toString == null) {
$toString = "Node{"
+ "__typename=" + __typename + ", "
+ "fragments=" + fragments
+ "}";
}
return $toString;
}
@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (o instanceof Node) {
Node that = (Node) o;
return this.__typename.equals(that.__typename)
&& this.fragments.equals(that.fragments);
}
return false;
}
@Override
public int hashCode() {
if (!$hashCodeMemoized) {
int h = 1;
h *= 1000003;
h ^= __typename.hashCode();
h *= 1000003;
h ^= fragments.hashCode();
$hashCode = h;
$hashCodeMemoized = true;
}
return $hashCode;
}
public static class Fragments {
private final @Nonnull PilotFragment pilotFragment;
private volatile String $toString;
private volatile int $hashCode;
private volatile boolean $hashCodeMemoized;
public Fragments(@Nonnull PilotFragment pilotFragment) {
this.pilotFragment = pilotFragment;
}
public @Nonnull PilotFragment pilotFragment() {
return this.pilotFragment;
}
@Override
public String toString() {
if ($toString == null) {
$toString = "Fragments{"
+ "pilotFragment=" + pilotFragment
+ "}";
}
return $toString;
}
@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (o instanceof Fragments) {
Fragments that = (Fragments) o;
return this.pilotFragment.equals(that.pilotFragment);
}
return false;
}
@Override
public int hashCode() {
if (!$hashCodeMemoized) {
int h = 1;
h *= 1000003;
h ^= pilotFragment.hashCode();
$hashCode = h;
$hashCodeMemoized = true;
}
return $hashCode;
}
public static final class Mapper implements FragmentResponseFieldMapper<Fragments> {
final PilotFragment.Mapper pilotFragmentFieldMapper = new PilotFragment.Mapper();
@Override
public @Nonnull Fragments map(ResponseReader reader, @Nonnull String conditionalType) throws
IOException {
PilotFragment pilotFragment = null;
if (PilotFragment.POSSIBLE_TYPES.contains(conditionalType)) {
pilotFragment = pilotFragmentFieldMapper.map(reader);
}
return new Fragments(pilotFragment);
}
}
}
public static final class Mapper implements ResponseFieldMapper<Node> {
final Fragments.Mapper fragmentsFieldMapper = new Fragments.Mapper();
final Field[] fields = {
Field.forString("__typename", "__typename", null, false),
Field.forConditionalType("__typename", "__typename", new Field.ConditionalTypeReader<Fragments>() {
@Override
public Fragments read(String conditionalType, ResponseReader reader) throws IOException {
return fragmentsFieldMapper.map(reader, conditionalType);
}
})
};
@Override
public Node map(ResponseReader reader) throws IOException {
final String __typename = reader.read(fields[0]);
final Fragments fragments = reader.read(fields[1]);
return new Node(__typename, fragments);
}
}
}
}