// AUTO-GENERATED FILE. DO NOT MODIFY. // // This class was automatically generated by Apollo GraphQL plugin from the GraphQL queries it found. // It should not be modified by hand. // package com.example.inline_fragments_with_friends; import com.apollographql.apollo.api.Operation; import com.apollographql.apollo.api.OperationName; import com.apollographql.apollo.api.Query; import com.apollographql.apollo.api.Response; import com.apollographql.apollo.api.ResponseField; import com.apollographql.apollo.api.ScalarTypeAdapters; import com.apollographql.apollo.api.internal.OperationRequestBodyComposer; import com.apollographql.apollo.api.internal.Optional; import com.apollographql.apollo.api.internal.QueryDocumentMinifier; import com.apollographql.apollo.api.internal.ResponseFieldMapper; import com.apollographql.apollo.api.internal.ResponseFieldMarshaller; import com.apollographql.apollo.api.internal.ResponseReader; import com.apollographql.apollo.api.internal.ResponseWriter; import com.apollographql.apollo.api.internal.SimpleOperationResponseParser; import com.apollographql.apollo.api.internal.Utils; import com.example.inline_fragments_with_friends.type.CustomType; import com.example.inline_fragments_with_friends.type.Episode; import java.io.IOException; import java.lang.Double; import java.lang.Object; import java.lang.Override; import java.lang.String; import java.lang.SuppressWarnings; import java.util.Arrays; import java.util.Collections; import java.util.List; import okio.Buffer; import okio.BufferedSource; import okio.ByteString; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public final class TestQuery implements Query<TestQuery.Data, Optional<TestQuery.Data>, Operation.Variables> { public static final String OPERATION_ID = "6a20c9553e5f209b6cc63f98b9d154b5d5917cdea11a903e5dc7f8f420f949b6"; public static final String QUERY_DOCUMENT = QueryDocumentMinifier.minify( "query TestQuery {\n" + " hero {\n" + " __typename\n" + " name\n" + " ... on Human {\n" + " height\n" + " friends {\n" + " __typename\n" + " appearsIn\n" + " }\n" + " }\n" + " ... on Droid {\n" + " primaryFunction\n" + " friends {\n" + " __typename\n" + " id\n" + " }\n" + " }\n" + " }\n" + "}" ); public 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 operationId() { return OPERATION_ID; } @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; } @Override @NotNull public Response<Optional<TestQuery.Data>> parse(@NotNull final BufferedSource source, @NotNull final ScalarTypeAdapters scalarTypeAdapters) throws IOException { return SimpleOperationResponseParser.parse(source, this, scalarTypeAdapters); } @Override @NotNull public Response<Optional<TestQuery.Data>> parse(@NotNull final ByteString byteString, @NotNull final ScalarTypeAdapters scalarTypeAdapters) throws IOException { return parse(new Buffer().write(byteString), scalarTypeAdapters); } @Override @NotNull public Response<Optional<TestQuery.Data>> parse(@NotNull final BufferedSource source) throws IOException { return parse(source, ScalarTypeAdapters.DEFAULT); } @Override @NotNull public Response<Optional<TestQuery.Data>> parse(@NotNull final ByteString byteString) throws IOException { return parse(byteString, ScalarTypeAdapters.DEFAULT); } @Override @NotNull public ByteString composeRequestBody(@NotNull final ScalarTypeAdapters scalarTypeAdapters) { return OperationRequestBodyComposer.compose(this, false, true, scalarTypeAdapters); } @NotNull @Override public ByteString composeRequestBody() { return OperationRequestBodyComposer.compose(this, false, true, ScalarTypeAdapters.DEFAULT); } @Override @NotNull public ByteString composeRequestBody(final boolean autoPersistQueries, final boolean withQueryDocument, @NotNull final ScalarTypeAdapters scalarTypeAdapters) { return OperationRequestBodyComposer.compose(this, autoPersistQueries, withQueryDocument, scalarTypeAdapters); } public static final class Builder { Builder() { } public TestQuery build() { return new TestQuery(); } } /** * Data from the response after executing this GraphQL operation */ public static class Data implements Operation.Data { static final ResponseField[] $responseFields = { ResponseField.forObject("hero", "hero", null, true, Collections.<ResponseField.Condition>emptyList()) }; final Optional<Hero> hero; private transient volatile String $toString; private transient volatile int $hashCode; private transient volatile boolean $hashCodeMemoized; public Data(@Nullable Hero hero) { this.hero = Optional.fromNullable(hero); } public Optional<Hero> hero() { return this.hero; } @SuppressWarnings({"rawtypes", "unchecked"}) public ResponseFieldMarshaller marshaller() { return new ResponseFieldMarshaller() { @Override public void marshal(ResponseWriter writer) { writer.writeObject($responseFields[0], hero.isPresent() ? hero.get().marshaller() : null); } }; } @Override public String toString() { if ($toString == null) { $toString = "Data{" + "hero=" + hero + "}"; } return $toString; } @Override public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof Data) { Data that = (Data) o; return this.hero.equals(that.hero); } return false; } @Override public int hashCode() { if (!$hashCodeMemoized) { int h = 1; h *= 1000003; h ^= hero.hashCode(); $hashCode = h; $hashCodeMemoized = true; } return $hashCode; } public static final class Mapper implements ResponseFieldMapper<Data> { final Hero.Mapper heroFieldMapper = new Hero.Mapper(); @Override public Data map(ResponseReader reader) { final Hero hero = reader.readObject($responseFields[0], new ResponseReader.ObjectReader<Hero>() { @Override public Hero read(ResponseReader reader) { return heroFieldMapper.map(reader); } }); return new Data(hero); } } } /** * A character from the Star Wars universe */ public interface Hero { @NotNull String __typename(); /** * The name of the character */ @NotNull String name(); ResponseFieldMarshaller marshaller(); default <T> T visit(Visitor<T> visitor) { if (this instanceof AsHuman) { return visitor.visit((AsHuman) this); } else if (this instanceof AsDroid) { return visitor.visit((AsDroid) this); } else if (this instanceof AsCharacter) { return visitor.visit((AsCharacter) this); } return visitor.visitDefault(this); } final class Mapper implements ResponseFieldMapper<Hero> { static final ResponseField[] $responseFields = { ResponseField.forFragment("__typename", "__typename", Arrays.<ResponseField.Condition>asList( ResponseField.Condition.typeCondition(new String[] {"Human"}) )), ResponseField.forFragment("__typename", "__typename", Arrays.<ResponseField.Condition>asList( ResponseField.Condition.typeCondition(new String[] {"Droid"}) )) }; final AsHuman.Mapper asHumanFieldMapper = new AsHuman.Mapper(); final AsDroid.Mapper asDroidFieldMapper = new AsDroid.Mapper(); final AsCharacter.Mapper asCharacterFieldMapper = new AsCharacter.Mapper(); @Override public Hero map(ResponseReader reader) { final AsHuman asHuman = reader.readFragment($responseFields[0], new ResponseReader.ObjectReader<AsHuman>() { @Override public AsHuman read(ResponseReader reader) { return asHumanFieldMapper.map(reader); } }); if (asHuman != null) { return asHuman; } final AsDroid asDroid = reader.readFragment($responseFields[1], new ResponseReader.ObjectReader<AsDroid>() { @Override public AsDroid read(ResponseReader reader) { return asDroidFieldMapper.map(reader); } }); if (asDroid != null) { return asDroid; } return asCharacterFieldMapper.map(reader); } } interface Visitor<T> { T visitDefault(@NotNull Hero hero); T visit(@NotNull AsHuman asHuman); T visit(@NotNull AsDroid asDroid); T visit(@NotNull AsCharacter asCharacter); } } /** * A humanoid creature from the Star Wars universe */ public static class AsHuman implements Hero { static final ResponseField[] $responseFields = { ResponseField.forString("__typename", "__typename", null, false, Collections.<ResponseField.Condition>emptyList()), ResponseField.forString("name", "name", null, false, Collections.<ResponseField.Condition>emptyList()), ResponseField.forDouble("height", "height", null, true, Collections.<ResponseField.Condition>emptyList()), ResponseField.forList("friends", "friends", null, true, Collections.<ResponseField.Condition>emptyList()) }; final @NotNull String __typename; final @NotNull String name; final Optional<Double> height; final Optional<List<Friend>> friends; private transient volatile String $toString; private transient volatile int $hashCode; private transient volatile boolean $hashCodeMemoized; public AsHuman(@NotNull String __typename, @NotNull String name, @Nullable Double height, @Nullable List<Friend> friends) { this.__typename = Utils.checkNotNull(__typename, "__typename == null"); this.name = Utils.checkNotNull(name, "name == null"); this.height = Optional.fromNullable(height); this.friends = Optional.fromNullable(friends); } public @NotNull String __typename() { return this.__typename; } /** * What this human calls themselves */ public @NotNull String name() { return this.name; } /** * Height in the preferred unit, default is meters */ public Optional<Double> height() { return this.height; } /** * This human's friends, or an empty list if they have none */ public Optional<List<Friend>> friends() { return this.friends; } @SuppressWarnings({"rawtypes", "unchecked"}) public ResponseFieldMarshaller marshaller() { return new ResponseFieldMarshaller() { @Override public void marshal(ResponseWriter writer) { writer.writeString($responseFields[0], __typename); writer.writeString($responseFields[1], name); writer.writeDouble($responseFields[2], height.isPresent() ? height.get() : null); writer.writeList($responseFields[3], friends.isPresent() ? friends.get() : null, new ResponseWriter.ListWriter() { @Override public void write(List items, ResponseWriter.ListItemWriter listItemWriter) { for (Object item : items) { listItemWriter.writeObject(((Friend) item).marshaller()); } } }); } }; } @Override public String toString() { if ($toString == null) { $toString = "AsHuman{" + "__typename=" + __typename + ", " + "name=" + name + ", " + "height=" + height + ", " + "friends=" + friends + "}"; } return $toString; } @Override public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof AsHuman) { AsHuman that = (AsHuman) o; return this.__typename.equals(that.__typename) && this.name.equals(that.name) && this.height.equals(that.height) && this.friends.equals(that.friends); } return false; } @Override public int hashCode() { if (!$hashCodeMemoized) { int h = 1; h *= 1000003; h ^= __typename.hashCode(); h *= 1000003; h ^= name.hashCode(); h *= 1000003; h ^= height.hashCode(); h *= 1000003; h ^= friends.hashCode(); $hashCode = h; $hashCodeMemoized = true; } return $hashCode; } public static final class Mapper implements ResponseFieldMapper<AsHuman> { final Friend.Mapper friendFieldMapper = new Friend.Mapper(); @Override public AsHuman map(ResponseReader reader) { final String __typename = reader.readString($responseFields[0]); final String name = reader.readString($responseFields[1]); final Double height = reader.readDouble($responseFields[2]); final List<Friend> friends = reader.readList($responseFields[3], new ResponseReader.ListReader<Friend>() { @Override public Friend read(ResponseReader.ListItemReader listItemReader) { return listItemReader.readObject(new ResponseReader.ObjectReader<Friend>() { @Override public Friend read(ResponseReader reader) { return friendFieldMapper.map(reader); } }); } }); return new AsHuman(__typename, name, height, friends); } } } /** * A character from the Star Wars universe */ public static class Friend { static final ResponseField[] $responseFields = { ResponseField.forString("__typename", "__typename", null, false, Collections.<ResponseField.Condition>emptyList()), ResponseField.forList("appearsIn", "appearsIn", null, false, Collections.<ResponseField.Condition>emptyList()) }; final @NotNull String __typename; final @NotNull List<Episode> appearsIn; private transient volatile String $toString; private transient volatile int $hashCode; private transient volatile boolean $hashCodeMemoized; public Friend(@NotNull String __typename, @NotNull List<Episode> appearsIn) { this.__typename = Utils.checkNotNull(__typename, "__typename == null"); this.appearsIn = Utils.checkNotNull(appearsIn, "appearsIn == null"); } public @NotNull String __typename() { return this.__typename; } /** * The movies this character appears in */ public @NotNull List<Episode> appearsIn() { return this.appearsIn; } @SuppressWarnings({"rawtypes", "unchecked"}) public ResponseFieldMarshaller marshaller() { return new ResponseFieldMarshaller() { @Override public void marshal(ResponseWriter writer) { writer.writeString($responseFields[0], __typename); writer.writeList($responseFields[1], appearsIn, new ResponseWriter.ListWriter() { @Override public void write(List items, ResponseWriter.ListItemWriter listItemWriter) { for (Object item : items) { listItemWriter.writeString(((Episode) item).rawValue()); } } }); } }; } @Override public String toString() { if ($toString == null) { $toString = "Friend{" + "__typename=" + __typename + ", " + "appearsIn=" + appearsIn + "}"; } return $toString; } @Override public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof Friend) { Friend that = (Friend) o; return this.__typename.equals(that.__typename) && this.appearsIn.equals(that.appearsIn); } return false; } @Override public int hashCode() { if (!$hashCodeMemoized) { int h = 1; h *= 1000003; h ^= __typename.hashCode(); h *= 1000003; h ^= appearsIn.hashCode(); $hashCode = h; $hashCodeMemoized = true; } return $hashCode; } public static final class Mapper implements ResponseFieldMapper<Friend> { @Override public Friend map(ResponseReader reader) { final String __typename = reader.readString($responseFields[0]); final List<Episode> appearsIn = reader.readList($responseFields[1], new ResponseReader.ListReader<Episode>() { @Override public Episode read(ResponseReader.ListItemReader listItemReader) { return Episode.safeValueOf(listItemReader.readString()); } }); return new Friend(__typename, appearsIn); } } } /** * An autonomous mechanical character in the Star Wars universe */ public static class AsDroid implements Hero { static final ResponseField[] $responseFields = { ResponseField.forString("__typename", "__typename", null, false, Collections.<ResponseField.Condition>emptyList()), ResponseField.forString("name", "name", null, false, Collections.<ResponseField.Condition>emptyList()), ResponseField.forString("primaryFunction", "primaryFunction", null, true, Collections.<ResponseField.Condition>emptyList()), ResponseField.forList("friends", "friends", null, true, Collections.<ResponseField.Condition>emptyList()) }; final @NotNull String __typename; final @NotNull String name; final Optional<String> primaryFunction; final Optional<List<Friend1>> friends; private transient volatile String $toString; private transient volatile int $hashCode; private transient volatile boolean $hashCodeMemoized; public AsDroid(@NotNull String __typename, @NotNull String name, @Nullable String primaryFunction, @Nullable List<Friend1> friends) { this.__typename = Utils.checkNotNull(__typename, "__typename == null"); this.name = Utils.checkNotNull(name, "name == null"); this.primaryFunction = Optional.fromNullable(primaryFunction); this.friends = Optional.fromNullable(friends); } public @NotNull String __typename() { return this.__typename; } /** * What others call this droid */ public @NotNull String name() { return this.name; } /** * This droid's primary function */ public Optional<String> primaryFunction() { return this.primaryFunction; } /** * This droid's friends, or an empty list if they have none */ public Optional<List<Friend1>> friends() { return this.friends; } @SuppressWarnings({"rawtypes", "unchecked"}) public ResponseFieldMarshaller marshaller() { return new ResponseFieldMarshaller() { @Override public void marshal(ResponseWriter writer) { writer.writeString($responseFields[0], __typename); writer.writeString($responseFields[1], name); writer.writeString($responseFields[2], primaryFunction.isPresent() ? primaryFunction.get() : null); writer.writeList($responseFields[3], friends.isPresent() ? friends.get() : null, new ResponseWriter.ListWriter() { @Override public void write(List items, ResponseWriter.ListItemWriter listItemWriter) { for (Object item : items) { listItemWriter.writeObject(((Friend1) item).marshaller()); } } }); } }; } @Override public String toString() { if ($toString == null) { $toString = "AsDroid{" + "__typename=" + __typename + ", " + "name=" + name + ", " + "primaryFunction=" + primaryFunction + ", " + "friends=" + friends + "}"; } return $toString; } @Override public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof AsDroid) { AsDroid that = (AsDroid) o; return this.__typename.equals(that.__typename) && this.name.equals(that.name) && this.primaryFunction.equals(that.primaryFunction) && this.friends.equals(that.friends); } return false; } @Override public int hashCode() { if (!$hashCodeMemoized) { int h = 1; h *= 1000003; h ^= __typename.hashCode(); h *= 1000003; h ^= name.hashCode(); h *= 1000003; h ^= primaryFunction.hashCode(); h *= 1000003; h ^= friends.hashCode(); $hashCode = h; $hashCodeMemoized = true; } return $hashCode; } public static final class Mapper implements ResponseFieldMapper<AsDroid> { final Friend1.Mapper friend1FieldMapper = new Friend1.Mapper(); @Override public AsDroid map(ResponseReader reader) { final String __typename = reader.readString($responseFields[0]); final String name = reader.readString($responseFields[1]); final String primaryFunction = reader.readString($responseFields[2]); final List<Friend1> friends = reader.readList($responseFields[3], new ResponseReader.ListReader<Friend1>() { @Override public Friend1 read(ResponseReader.ListItemReader listItemReader) { return listItemReader.readObject(new ResponseReader.ObjectReader<Friend1>() { @Override public Friend1 read(ResponseReader reader) { return friend1FieldMapper.map(reader); } }); } }); return new AsDroid(__typename, name, primaryFunction, friends); } } } /** * A character from the Star Wars universe */ public static class Friend1 { static final ResponseField[] $responseFields = { ResponseField.forString("__typename", "__typename", null, false, Collections.<ResponseField.Condition>emptyList()), ResponseField.forCustomType("id", "id", null, false, CustomType.ID, Collections.<ResponseField.Condition>emptyList()) }; final @NotNull String __typename; final @NotNull String id; private transient volatile String $toString; private transient volatile int $hashCode; private transient volatile boolean $hashCodeMemoized; public Friend1(@NotNull String __typename, @NotNull String id) { this.__typename = Utils.checkNotNull(__typename, "__typename == null"); this.id = Utils.checkNotNull(id, "id == null"); } public @NotNull String __typename() { return this.__typename; } /** * The ID of the character */ public @NotNull String id() { return this.id; } @SuppressWarnings({"rawtypes", "unchecked"}) public ResponseFieldMarshaller marshaller() { return new ResponseFieldMarshaller() { @Override public void marshal(ResponseWriter writer) { writer.writeString($responseFields[0], __typename); writer.writeCustom((ResponseField.CustomTypeField) $responseFields[1], id); } }; } @Override public String toString() { if ($toString == null) { $toString = "Friend1{" + "__typename=" + __typename + ", " + "id=" + id + "}"; } return $toString; } @Override public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof Friend1) { Friend1 that = (Friend1) o; return this.__typename.equals(that.__typename) && this.id.equals(that.id); } return false; } @Override public int hashCode() { if (!$hashCodeMemoized) { int h = 1; h *= 1000003; h ^= __typename.hashCode(); h *= 1000003; h ^= id.hashCode(); $hashCode = h; $hashCodeMemoized = true; } return $hashCode; } public static final class Mapper implements ResponseFieldMapper<Friend1> { @Override public Friend1 map(ResponseReader reader) { final String __typename = reader.readString($responseFields[0]); final String id = reader.readCustomType((ResponseField.CustomTypeField) $responseFields[1]); return new Friend1(__typename, id); } } } /** * A character from the Star Wars universe */ public static class AsCharacter implements Hero { static final ResponseField[] $responseFields = { ResponseField.forString("__typename", "__typename", null, false, Collections.<ResponseField.Condition>emptyList()), ResponseField.forString("name", "name", null, false, Collections.<ResponseField.Condition>emptyList()) }; final @NotNull String __typename; final @NotNull String name; private transient volatile String $toString; private transient volatile int $hashCode; private transient volatile boolean $hashCodeMemoized; public AsCharacter(@NotNull String __typename, @NotNull String name) { this.__typename = Utils.checkNotNull(__typename, "__typename == null"); this.name = Utils.checkNotNull(name, "name == null"); } public @NotNull String __typename() { return this.__typename; } /** * The name of the character */ public @NotNull String name() { return this.name; } @SuppressWarnings({"rawtypes", "unchecked"}) public ResponseFieldMarshaller marshaller() { return new ResponseFieldMarshaller() { @Override public void marshal(ResponseWriter writer) { writer.writeString($responseFields[0], __typename); writer.writeString($responseFields[1], name); } }; } @Override public String toString() { if ($toString == null) { $toString = "AsCharacter{" + "__typename=" + __typename + ", " + "name=" + name + "}"; } return $toString; } @Override public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof AsCharacter) { AsCharacter that = (AsCharacter) 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<AsCharacter> { @Override public AsCharacter map(ResponseReader reader) { final String __typename = reader.readString($responseFields[0]); final String name = reader.readString($responseFields[1]); return new AsCharacter(__typename, name); } } } }