package com.example.two_heroes_with_friends; import com.apollographql.apollo.api.Field; import com.apollographql.apollo.api.Operation; import com.apollographql.apollo.api.OperationName; import com.apollographql.apollo.api.Query; import com.apollographql.apollo.api.ResponseFieldMapper; import com.apollographql.apollo.api.ResponseReader; import com.apollographql.apollo.api.internal.Optional; import com.apollographql.apollo.api.internal.UnmodifiableMapBuilder; import java.io.IOException; import java.lang.Integer; import java.lang.Object; import java.lang.Override; import java.lang.String; import java.util.List; import javax.annotation.Generated; import javax.annotation.Nonnull; import javax.annotation.Nullable; @Generated("Apollo GraphQL") public final class TestQuery implements Query<TestQuery.Data, Optional<TestQuery.Data>, Operation.Variables> { public static final String OPERATION_DEFINITION = "query TestQuery {\n" + " r2: hero {\n" + " __typename\n" + " name\n" + " friendsConnection {\n" + " __typename\n" + " totalCount\n" + " edges {\n" + " __typename\n" + " node {\n" + " __typename\n" + " name\n" + " }\n" + " }\n" + " }\n" + " }\n" + " luke: hero(episode: EMPIRE) {\n" + " __typename\n" + " id\n" + " name\n" + " friendsConnection {\n" + " __typename\n" + " totalCount\n" + " edges {\n" + " __typename\n" + " node {\n" + " __typename\n" + " name\n" + " }\n" + " }\n" + " }\n" + " }\n" + "}"; public static final String QUERY_DOCUMENT = OPERATION_DEFINITION; private static final OperationName OPERATION_NAME = new OperationName() { @Override public String name() { return "TestQuery"; } }; private final Operation.Variables variables; public TestQuery() { this.variables = Operation.EMPTY_VARIABLES; } @Override public String queryDocument() { return QUERY_DOCUMENT; } @Override public Optional<TestQuery.Data> wrapData(TestQuery.Data data) { return Optional.fromNullable(data); } @Override public Operation.Variables variables() { return variables; } @Override public ResponseFieldMapper<TestQuery.Data> responseFieldMapper() { return new Data.Mapper(); } public static Builder builder() { return new Builder(); } @Override public OperationName name() { return OPERATION_NAME; } public static final class Builder { Builder() { } public TestQuery build() { return new TestQuery(); } } public static class Data implements Operation.Data { private final Optional<R2> r2; private final Optional<Luke> luke; private volatile String $toString; private volatile int $hashCode; private volatile boolean $hashCodeMemoized; public Data(@Nullable R2 r2, @Nullable Luke luke) { this.r2 = Optional.fromNullable(r2); this.luke = Optional.fromNullable(luke); } public Optional<R2> r2() { return this.r2; } public Optional<Luke> luke() { return this.luke; } @Override public String toString() { if ($toString == null) { $toString = "Data{" + "r2=" + r2 + ", " + "luke=" + luke + "}"; } return $toString; } @Override public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof Data) { Data that = (Data) o; return this.r2.equals(that.r2) && this.luke.equals(that.luke); } return false; } @Override public int hashCode() { if (!$hashCodeMemoized) { int h = 1; h *= 1000003; h ^= r2.hashCode(); h *= 1000003; h ^= luke.hashCode(); $hashCode = h; $hashCodeMemoized = true; } return $hashCode; } public static final class Mapper implements ResponseFieldMapper<Data> { final R2.Mapper r2FieldMapper = new R2.Mapper(); final Luke.Mapper lukeFieldMapper = new Luke.Mapper(); final Field[] fields = { Field.forObject("r2", "hero", null, true, new Field.ObjectReader<R2>() { @Override public R2 read(final ResponseReader reader) throws IOException { return r2FieldMapper.map(reader); } }), Field.forObject("luke", "hero", new UnmodifiableMapBuilder<String, Object>(1) .put("episode", "EMPIRE") .build(), true, new Field.ObjectReader<Luke>() { @Override public Luke read(final ResponseReader reader) throws IOException { return lukeFieldMapper.map(reader); } }) }; @Override public Data map(ResponseReader reader) throws IOException { final R2 r2 = reader.read(fields[0]); final Luke luke = reader.read(fields[1]); return new Data(r2, luke); } } } public static class R2 { private final @Nonnull String __typename; private final @Nonnull String name; private final @Nonnull FriendsConnection friendsConnection; private volatile String $toString; private volatile int $hashCode; private volatile boolean $hashCodeMemoized; public R2(@Nonnull String __typename, @Nonnull String name, @Nonnull FriendsConnection friendsConnection) { this.__typename = __typename; this.name = name; this.friendsConnection = friendsConnection; } public @Nonnull String __typename() { return this.__typename; } /** * The name of the character */ public @Nonnull String name() { return this.name; } /** * The friends of the character exposed as a connection with edges */ public @Nonnull FriendsConnection friendsConnection() { return this.friendsConnection; } @Override public String toString() { if ($toString == null) { $toString = "R2{" + "__typename=" + __typename + ", " + "name=" + name + ", " + "friendsConnection=" + friendsConnection + "}"; } return $toString; } @Override public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof R2) { R2 that = (R2) o; return this.__typename.equals(that.__typename) && this.name.equals(that.name) && this.friendsConnection.equals(that.friendsConnection); } return false; } @Override public int hashCode() { if (!$hashCodeMemoized) { int h = 1; h *= 1000003; h ^= __typename.hashCode(); h *= 1000003; h ^= name.hashCode(); h *= 1000003; h ^= friendsConnection.hashCode(); $hashCode = h; $hashCodeMemoized = true; } return $hashCode; } public static final class Mapper implements ResponseFieldMapper<R2> { final FriendsConnection.Mapper friendsConnectionFieldMapper = new FriendsConnection.Mapper(); final Field[] fields = { Field.forString("__typename", "__typename", null, false), Field.forString("name", "name", null, false), Field.forObject("friendsConnection", "friendsConnection", null, false, new Field.ObjectReader<FriendsConnection>() { @Override public FriendsConnection read(final ResponseReader reader) throws IOException { return friendsConnectionFieldMapper.map(reader); } }) }; @Override public R2 map(ResponseReader reader) throws IOException { final String __typename = reader.read(fields[0]); final String name = reader.read(fields[1]); final FriendsConnection friendsConnection = reader.read(fields[2]); return new R2(__typename, name, friendsConnection); } } } public static class FriendsConnection { private final @Nonnull String __typename; private final Optional<Integer> totalCount; private final Optional<List<Edge>> edges; private volatile String $toString; private volatile int $hashCode; private volatile boolean $hashCodeMemoized; public FriendsConnection(@Nonnull String __typename, @Nullable Integer totalCount, @Nullable List<Edge> edges) { this.__typename = __typename; this.totalCount = Optional.fromNullable(totalCount); this.edges = Optional.fromNullable(edges); } public @Nonnull String __typename() { return this.__typename; } /** * The total number of friends */ public Optional<Integer> totalCount() { return this.totalCount; } /** * The edges for each of the character's friends. */ public Optional<List<Edge>> edges() { return this.edges; } @Override public String toString() { if ($toString == null) { $toString = "FriendsConnection{" + "__typename=" + __typename + ", " + "totalCount=" + totalCount + ", " + "edges=" + edges + "}"; } return $toString; } @Override public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof FriendsConnection) { FriendsConnection that = (FriendsConnection) o; return this.__typename.equals(that.__typename) && this.totalCount.equals(that.totalCount) && this.edges.equals(that.edges); } return false; } @Override public int hashCode() { if (!$hashCodeMemoized) { int h = 1; h *= 1000003; h ^= __typename.hashCode(); h *= 1000003; h ^= totalCount.hashCode(); h *= 1000003; h ^= edges.hashCode(); $hashCode = h; $hashCodeMemoized = true; } return $hashCode; } public static final class Mapper implements ResponseFieldMapper<FriendsConnection> { final Edge.Mapper edgeFieldMapper = new Edge.Mapper(); final Field[] fields = { Field.forString("__typename", "__typename", null, false), Field.forInt("totalCount", "totalCount", null, true), 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 FriendsConnection map(ResponseReader reader) throws IOException { final String __typename = reader.read(fields[0]); final Integer totalCount = reader.read(fields[1]); final List<Edge> edges = reader.read(fields[2]); return new FriendsConnection(__typename, totalCount, 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 character represented by this friendship 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 String name; private volatile String $toString; private volatile int $hashCode; private volatile boolean $hashCodeMemoized; public Node(@Nonnull String __typename, @Nonnull String name) { this.__typename = __typename; this.name = name; } public @Nonnull String __typename() { return this.__typename; } /** * The name of the character */ public @Nonnull String name() { return this.name; } @Override public String toString() { if ($toString == null) { $toString = "Node{" + "__typename=" + __typename + ", " + "name=" + name + "}"; } 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.name.equals(that.name); } return false; } @Override public int hashCode() { if (!$hashCodeMemoized) { int h = 1; h *= 1000003; h ^= __typename.hashCode(); h *= 1000003; h ^= name.hashCode(); $hashCode = h; $hashCodeMemoized = true; } return $hashCode; } public static final class Mapper implements ResponseFieldMapper<Node> { final Field[] fields = { Field.forString("__typename", "__typename", null, false), Field.forString("name", "name", null, false) }; @Override public Node map(ResponseReader reader) throws IOException { final String __typename = reader.read(fields[0]); final String name = reader.read(fields[1]); return new Node(__typename, name); } } } public static class Luke { private final @Nonnull String __typename; private final @Nonnull String id; private final @Nonnull String name; private final @Nonnull FriendsConnection1 friendsConnection; private volatile String $toString; private volatile int $hashCode; private volatile boolean $hashCodeMemoized; public Luke(@Nonnull String __typename, @Nonnull String id, @Nonnull String name, @Nonnull FriendsConnection1 friendsConnection) { this.__typename = __typename; this.id = id; this.name = name; this.friendsConnection = friendsConnection; } public @Nonnull String __typename() { return this.__typename; } /** * The ID of the character */ public @Nonnull String id() { return this.id; } /** * The name of the character */ public @Nonnull String name() { return this.name; } /** * The friends of the character exposed as a connection with edges */ public @Nonnull FriendsConnection1 friendsConnection() { return this.friendsConnection; } @Override public String toString() { if ($toString == null) { $toString = "Luke{" + "__typename=" + __typename + ", " + "id=" + id + ", " + "name=" + name + ", " + "friendsConnection=" + friendsConnection + "}"; } return $toString; } @Override public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof Luke) { Luke that = (Luke) o; return this.__typename.equals(that.__typename) && this.id.equals(that.id) && this.name.equals(that.name) && this.friendsConnection.equals(that.friendsConnection); } 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 ^= friendsConnection.hashCode(); $hashCode = h; $hashCodeMemoized = true; } return $hashCode; } public static final class Mapper implements ResponseFieldMapper<Luke> { final FriendsConnection1.Mapper friendsConnection1FieldMapper = new FriendsConnection1.Mapper(); final Field[] fields = { Field.forString("__typename", "__typename", null, false), Field.forString("id", "id", null, false), Field.forString("name", "name", null, false), Field.forObject("friendsConnection", "friendsConnection", null, false, new Field.ObjectReader<FriendsConnection1>() { @Override public FriendsConnection1 read(final ResponseReader reader) throws IOException { return friendsConnection1FieldMapper.map(reader); } }) }; @Override public Luke 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 FriendsConnection1 friendsConnection = reader.read(fields[3]); return new Luke(__typename, id, name, friendsConnection); } } } public static class FriendsConnection1 { private final @Nonnull String __typename; private final Optional<Integer> totalCount; private final Optional<List<Edge1>> edges; private volatile String $toString; private volatile int $hashCode; private volatile boolean $hashCodeMemoized; public FriendsConnection1(@Nonnull String __typename, @Nullable Integer totalCount, @Nullable List<Edge1> edges) { this.__typename = __typename; this.totalCount = Optional.fromNullable(totalCount); this.edges = Optional.fromNullable(edges); } public @Nonnull String __typename() { return this.__typename; } /** * The total number of friends */ public Optional<Integer> totalCount() { return this.totalCount; } /** * The edges for each of the character's friends. */ public Optional<List<Edge1>> edges() { return this.edges; } @Override public String toString() { if ($toString == null) { $toString = "FriendsConnection1{" + "__typename=" + __typename + ", " + "totalCount=" + totalCount + ", " + "edges=" + edges + "}"; } return $toString; } @Override public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof FriendsConnection1) { FriendsConnection1 that = (FriendsConnection1) o; return this.__typename.equals(that.__typename) && this.totalCount.equals(that.totalCount) && this.edges.equals(that.edges); } return false; } @Override public int hashCode() { if (!$hashCodeMemoized) { int h = 1; h *= 1000003; h ^= __typename.hashCode(); h *= 1000003; h ^= totalCount.hashCode(); h *= 1000003; h ^= edges.hashCode(); $hashCode = h; $hashCodeMemoized = true; } return $hashCode; } public static final class Mapper implements ResponseFieldMapper<FriendsConnection1> { final Edge1.Mapper edge1FieldMapper = new Edge1.Mapper(); final Field[] fields = { Field.forString("__typename", "__typename", null, false), Field.forInt("totalCount", "totalCount", null, true), Field.forList("edges", "edges", null, true, new Field.ObjectReader<Edge1>() { @Override public Edge1 read(final ResponseReader reader) throws IOException { return edge1FieldMapper.map(reader); } }) }; @Override public FriendsConnection1 map(ResponseReader reader) throws IOException { final String __typename = reader.read(fields[0]); final Integer totalCount = reader.read(fields[1]); final List<Edge1> edges = reader.read(fields[2]); return new FriendsConnection1(__typename, totalCount, edges); } } } public static class Edge1 { private final @Nonnull String __typename; private final Optional<Node1> node; private volatile String $toString; private volatile int $hashCode; private volatile boolean $hashCodeMemoized; public Edge1(@Nonnull String __typename, @Nullable Node1 node) { this.__typename = __typename; this.node = Optional.fromNullable(node); } public @Nonnull String __typename() { return this.__typename; } /** * The character represented by this friendship edge */ public Optional<Node1> node() { return this.node; } @Override public String toString() { if ($toString == null) { $toString = "Edge1{" + "__typename=" + __typename + ", " + "node=" + node + "}"; } return $toString; } @Override public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof Edge1) { Edge1 that = (Edge1) 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<Edge1> { final Node1.Mapper node1FieldMapper = new Node1.Mapper(); final Field[] fields = { Field.forString("__typename", "__typename", null, false), Field.forObject("node", "node", null, true, new Field.ObjectReader<Node1>() { @Override public Node1 read(final ResponseReader reader) throws IOException { return node1FieldMapper.map(reader); } }) }; @Override public Edge1 map(ResponseReader reader) throws IOException { final String __typename = reader.read(fields[0]); final Node1 node = reader.read(fields[1]); return new Edge1(__typename, node); } } } public static class Node1 { private final @Nonnull String __typename; private final @Nonnull String name; private volatile String $toString; private volatile int $hashCode; private volatile boolean $hashCodeMemoized; public Node1(@Nonnull String __typename, @Nonnull String name) { this.__typename = __typename; this.name = name; } public @Nonnull String __typename() { return this.__typename; } /** * The name of the character */ public @Nonnull String name() { return this.name; } @Override public String toString() { if ($toString == null) { $toString = "Node1{" + "__typename=" + __typename + ", " + "name=" + name + "}"; } return $toString; } @Override public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof Node1) { Node1 that = (Node1) o; return this.__typename.equals(that.__typename) && this.name.equals(that.name); } return false; } @Override public int hashCode() { if (!$hashCodeMemoized) { int h = 1; h *= 1000003; h ^= __typename.hashCode(); h *= 1000003; h ^= name.hashCode(); $hashCode = h; $hashCodeMemoized = true; } return $hashCode; } public static final class Mapper implements ResponseFieldMapper<Node1> { final Field[] fields = { Field.forString("__typename", "__typename", null, false), Field.forString("name", "name", null, false) }; @Override public Node1 map(ResponseReader reader) throws IOException { final String __typename = reader.read(fields[0]); final String name = reader.read(fields[1]); return new Node1(__typename, name); } } } }