diff --git a/apollo-compiler/src/main/kotlin/com/apollographql/android/compiler/OperationTypeSpecBuilder.kt b/apollo-compiler/src/main/kotlin/com/apollographql/android/compiler/OperationTypeSpecBuilder.kt index 0cdc04b7187..ddb5ba043cf 100644 --- a/apollo-compiler/src/main/kotlin/com/apollographql/android/compiler/OperationTypeSpecBuilder.kt +++ b/apollo-compiler/src/main/kotlin/com/apollographql/android/compiler/OperationTypeSpecBuilder.kt @@ -12,15 +12,16 @@ class OperationTypeSpecBuilder( private val OPERATION_VARIABLES_CLASS_NAME = ClassName.get("", "$OPERATION_TYPE_NAME.Variables") override fun toTypeSpec(context: CodeGenerationContext): TypeSpec { + val newContext = context.plusReservedTypes(OPERATION_TYPE_NAME) return TypeSpec.classBuilder(OPERATION_TYPE_NAME) .addAnnotation(Annotations.GENERATED_BY_APOLLO) .addModifiers(Modifier.PUBLIC, Modifier.FINAL) .addQuerySuperInterface(operation.variables.isNotEmpty()) .addOperationDefinition(operation) - .addQueryDocumentDefinition(fragments, context) + .addQueryDocumentDefinition(fragments, newContext) .addQueryConstructor(operation.variables.isNotEmpty()) - .addVariablesDefinition(operation.variables, context.typesPackage, context.customTypeMap) - .addType(operation.toTypeSpec(context)) + .addVariablesDefinition(operation.variables, newContext.typesPackage, newContext.customTypeMap) + .addType(operation.toTypeSpec(newContext)) .build() } diff --git a/apollo-compiler/src/main/kotlin/com/apollographql/android/compiler/SchemaTypeSpecBuilder.kt b/apollo-compiler/src/main/kotlin/com/apollographql/android/compiler/SchemaTypeSpecBuilder.kt index 5a40a74db87..ddb02126159 100644 --- a/apollo-compiler/src/main/kotlin/com/apollographql/android/compiler/SchemaTypeSpecBuilder.kt +++ b/apollo-compiler/src/main/kotlin/com/apollographql/android/compiler/SchemaTypeSpecBuilder.kt @@ -71,9 +71,8 @@ class SchemaTypeSpecBuilder( private fun TypeSpec.Builder.addInnerTypes(fields: List<Field>): TypeSpec.Builder { val reservedTypeNames = context.reservedTypeNames + typeName + fields.filter(Field::isNonScalar).map( Field::normalizedName) - val typeSpecs = fields.filter(Field::isNonScalar).map { - it.toTypeSpec(CodeGenerationContext(context.abstractType, reservedTypeNames.minus(it.normalizedName()), - context.typeDeclarations, context.fragmentsPackage, context.typesPackage, context.customTypeMap)) + val typeSpecs = fields.filter(Field::isNonScalar).map { field -> + field.toTypeSpec(context.withReservedTypeNames(reservedTypeNames.minus(field.normalizedName()))) } return addTypes(typeSpecs) } @@ -81,10 +80,7 @@ class SchemaTypeSpecBuilder( private fun TypeSpec.Builder.addInlineFragments(fragments: List<InlineFragment>): TypeSpec.Builder { val reservedTypeNames = context.reservedTypeNames + typeName + fields.filter(Field::isNonScalar).map( Field::normalizedName) - val typeSpecs = fragments.map { - it.toTypeSpec(CodeGenerationContext(context.abstractType, reservedTypeNames, context.typeDeclarations, - context.fragmentsPackage, context.typesPackage, context.customTypeMap)) - } + val typeSpecs = fragments.map { it.toTypeSpec(context.withReservedTypeNames(reservedTypeNames)) } val methodSpecs = fragments.map { it.accessorMethodSpec(context.abstractType) } val fieldSpecs = if (context.abstractType) emptyList() else fragments.map { it.fieldSpec() } return addTypes(typeSpecs) @@ -172,7 +168,7 @@ class SchemaTypeSpecBuilder( } private fun formatUniqueTypeName(typeName: String, reservedTypeNames: List<String>): String { - val suffix = reservedTypeNames.count { it == typeName }.let { if (it > 0) "$".repeat(it) else "" } + val suffix = reservedTypeNames.count { it == typeName }.let { if (it > 0) "$it" else "" } return "$typeName$suffix" } diff --git a/apollo-compiler/src/main/kotlin/com/apollographql/android/compiler/ir/CodeGenerationContext.kt b/apollo-compiler/src/main/kotlin/com/apollographql/android/compiler/ir/CodeGenerationContext.kt index 4e462cd063a..af608a9e976 100644 --- a/apollo-compiler/src/main/kotlin/com/apollographql/android/compiler/ir/CodeGenerationContext.kt +++ b/apollo-compiler/src/main/kotlin/com/apollographql/android/compiler/ir/CodeGenerationContext.kt @@ -7,4 +7,28 @@ data class CodeGenerationContext( val fragmentsPackage: String = "", val typesPackage: String = "", val customTypeMap: Map<String, String> -) \ No newline at end of file +) { + fun plusReservedTypes(vararg typeName: String): CodeGenerationContext = plusReservedTypes(typeName.toList()) + + fun plusReservedTypes(typeNames: List<String>): CodeGenerationContext = + CodeGenerationContext( + abstractType = abstractType, + reservedTypeNames = reservedTypeNames.plus(typeNames), + typeDeclarations = typeDeclarations, + fragmentsPackage = fragmentsPackage, + typesPackage = typesPackage, + customTypeMap = customTypeMap + ) + + fun withReservedTypeNames(vararg typeName: String): CodeGenerationContext = withReservedTypeNames(typeName.asList()) + + fun withReservedTypeNames(reservedTypeNames: List<String>): CodeGenerationContext = + CodeGenerationContext( + abstractType = abstractType, + reservedTypeNames = reservedTypeNames, + typeDeclarations = typeDeclarations, + fragmentsPackage = fragmentsPackage, + typesPackage = typesPackage, + customTypeMap = customTypeMap + ) +} \ No newline at end of file diff --git a/apollo-compiler/src/main/kotlin/com/apollographql/android/compiler/ir/Operation.kt b/apollo-compiler/src/main/kotlin/com/apollographql/android/compiler/ir/Operation.kt index ffe10d748a7..bea89fa0e6d 100644 --- a/apollo-compiler/src/main/kotlin/com/apollographql/android/compiler/ir/Operation.kt +++ b/apollo-compiler/src/main/kotlin/com/apollographql/android/compiler/ir/Operation.kt @@ -2,7 +2,6 @@ package com.apollographql.android.compiler.ir import com.apollographql.android.api.graphql.Operation import com.apollographql.android.compiler.SchemaTypeSpecBuilder -import com.squareup.javapoet.ClassName import com.squareup.javapoet.TypeSpec import javax.lang.model.element.Modifier @@ -19,7 +18,7 @@ data class Operation( SchemaTypeSpecBuilder(INTERFACE_TYPE_SPEC_NAME, fields, emptyList(), emptyList(), context) .build(Modifier.PUBLIC, Modifier.STATIC) .toBuilder() - .addSuperinterface(ClassName.get(Operation.Data::class.java)) + .addSuperinterface(Operation.Data::class.java) .build() companion object { diff --git a/apollo-compiler/src/test/graphql/com/example/fragment_with_inline_fragment/HeroDetailsExpected.java b/apollo-compiler/src/test/graphql/com/example/fragment_with_inline_fragment/HeroDetailsExpected.java index 09902f79ce7..77306f12485 100644 --- a/apollo-compiler/src/test/graphql/com/example/fragment_with_inline_fragment/HeroDetailsExpected.java +++ b/apollo-compiler/src/test/graphql/com/example/fragment_with_inline_fragment/HeroDetailsExpected.java @@ -201,11 +201,11 @@ interface Creator { interface AsDroid { @Nonnull String name(); - @Nonnull FriendsConnection$ friendsConnection(); + @Nonnull FriendsConnection1 friendsConnection(); @Nullable String primaryFunction(); - interface FriendsConnection$ { + interface FriendsConnection1 { @Nullable Integer totalCount(); @Nullable List<? extends Edge> edges(); @@ -306,7 +306,7 @@ interface Creator { } } - final class Mapper implements ResponseFieldMapper<FriendsConnection$> { + final class Mapper implements ResponseFieldMapper<FriendsConnection1> { final Factory factory; final Field[] fields = { @@ -323,7 +323,7 @@ public Mapper(@Nonnull Factory factory) { } @Override - public FriendsConnection$ map(ResponseReader reader) throws IOException { + public FriendsConnection1 map(ResponseReader reader) throws IOException { final __ContentValues contentValues = new __ContentValues(); reader.read(new ResponseReader.ValueHandler() { @Override @@ -357,7 +357,7 @@ interface Factory { } interface Creator { - @Nonnull FriendsConnection$ create(@Nullable Integer totalCount, + @Nonnull FriendsConnection1 create(@Nullable Integer totalCount, @Nullable List<? extends Edge> edges); } } @@ -367,9 +367,9 @@ final class Mapper implements ResponseFieldMapper<AsDroid> { final Field[] fields = { 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 new FriendsConnection$.Mapper(factory.friendsConnection$Factory()).map(reader); + Field.forObject("friendsConnection", "friendsConnection", null, false, new Field.ObjectReader<FriendsConnection1>() { + @Override public FriendsConnection1 read(final ResponseReader reader) throws IOException { + return new FriendsConnection1.Mapper(factory.friendsConnection1Factory()).map(reader); } }), Field.forString("primaryFunction", "primaryFunction", null, true) @@ -391,7 +391,7 @@ public void handle(final int fieldIndex, final Object value) throws IOException break; } case 1: { - contentValues.friendsConnection = (FriendsConnection$) value; + contentValues.friendsConnection = (FriendsConnection1) value; break; } case 2: { @@ -407,7 +407,7 @@ public void handle(final int fieldIndex, final Object value) throws IOException static final class __ContentValues { String name; - FriendsConnection$ friendsConnection; + FriendsConnection1 friendsConnection; String primaryFunction; } @@ -416,11 +416,11 @@ static final class __ContentValues { interface Factory { @Nonnull Creator creator(); - @Nonnull FriendsConnection$.Factory friendsConnection$Factory(); + @Nonnull FriendsConnection1.Factory friendsConnection1Factory(); } interface Creator { - @Nonnull AsDroid create(@Nonnull String name, @Nonnull FriendsConnection$ friendsConnection, + @Nonnull AsDroid create(@Nonnull String name, @Nonnull FriendsConnection1 friendsConnection, @Nullable String primaryFunction); } } diff --git a/apollo-compiler/src/test/graphql/com/example/pojo_fragment_with_inline_fragment/HeroDetailsExpected.java b/apollo-compiler/src/test/graphql/com/example/pojo_fragment_with_inline_fragment/HeroDetailsExpected.java index bb58794a884..fa0506a24db 100644 --- a/apollo-compiler/src/test/graphql/com/example/pojo_fragment_with_inline_fragment/HeroDetailsExpected.java +++ b/apollo-compiler/src/test/graphql/com/example/pojo_fragment_with_inline_fragment/HeroDetailsExpected.java @@ -448,7 +448,7 @@ public static class AsDroid { public static final Creator CREATOR = new Creator() { @Override public @Nonnull AsDroid create(@Nonnull String name, - @Nonnull FriendsConnection$ friendsConnection, @Nullable String primaryFunction) { + @Nonnull FriendsConnection1 friendsConnection, @Nullable String primaryFunction) { return new AsDroid(name, friendsConnection, primaryFunction); } }; @@ -460,18 +460,18 @@ public static class AsDroid { } @Override - public @Nonnull FriendsConnection$.Factory friendsConnection$Factory() { - return FriendsConnection$.FACTORY; + public @Nonnull FriendsConnection1.Factory friendsConnection1Factory() { + return FriendsConnection1.FACTORY; } }; private final @Nonnull String name; - private final @Nonnull FriendsConnection$ friendsConnection; + private final @Nonnull FriendsConnection1 friendsConnection; private final @Nullable String primaryFunction; - public AsDroid(@Nonnull String name, @Nonnull FriendsConnection$ friendsConnection, + public AsDroid(@Nonnull String name, @Nonnull FriendsConnection1 friendsConnection, @Nullable String primaryFunction) { this.name = name; this.friendsConnection = friendsConnection; @@ -482,7 +482,7 @@ public AsDroid(@Nonnull String name, @Nonnull FriendsConnection$ friendsConnecti return this.name; } - public @Nonnull FriendsConnection$ friendsConnection() { + public @Nonnull FriendsConnection1 friendsConnection() { return this.friendsConnection; } @@ -525,12 +525,12 @@ public int hashCode() { return h; } - public static class FriendsConnection$ { + public static class FriendsConnection1 { public static final Creator CREATOR = new Creator() { @Override - public @Nonnull FriendsConnection$ create(int totalCount, + public @Nonnull FriendsConnection1 create(int totalCount, @Nullable List<? extends Edge> edges) { - return new FriendsConnection$(totalCount, edges); + return new FriendsConnection1(totalCount, edges); } }; @@ -550,7 +550,7 @@ public static class FriendsConnection$ { private final @Nullable List<? extends Edge> edges; - public FriendsConnection$(int totalCount, @Nullable List<? extends Edge> edges) { + public FriendsConnection1(int totalCount, @Nullable List<? extends Edge> edges) { this.totalCount = totalCount; this.edges = edges; } @@ -565,7 +565,7 @@ public int totalCount() { @Override public String toString() { - return "FriendsConnection${" + return "FriendsConnection1{" + "totalCount=" + totalCount + ", " + "edges=" + edges + "}"; @@ -576,8 +576,8 @@ public boolean equals(Object o) { if (o == this) { return true; } - if (o instanceof FriendsConnection$) { - FriendsConnection$ that = (FriendsConnection$) o; + if (o instanceof FriendsConnection1) { + FriendsConnection1 that = (FriendsConnection1) o; return this.totalCount == that.totalCount && ((this.edges == null) ? (that.edges == null) : this.edges.equals(that.edges)); } @@ -793,7 +793,7 @@ public interface Creator { } } - public static final class Mapper implements ResponseFieldMapper<FriendsConnection$> { + public static final class Mapper implements ResponseFieldMapper<FriendsConnection1> { final Factory factory; final Field[] fields = { @@ -810,7 +810,7 @@ public Mapper(@Nonnull Factory factory) { } @Override - public FriendsConnection$ map(ResponseReader reader) throws IOException { + public FriendsConnection1 map(ResponseReader reader) throws IOException { final __ContentValues contentValues = new __ContentValues(); reader.read(new ResponseReader.ValueHandler() { @Override @@ -844,7 +844,7 @@ public interface Factory { } public interface Creator { - @Nonnull FriendsConnection$ create(int totalCount, @Nullable List<? extends Edge> edges); + @Nonnull FriendsConnection1 create(int totalCount, @Nullable List<? extends Edge> edges); } } @@ -853,9 +853,9 @@ public static final class Mapper implements ResponseFieldMapper<AsDroid> { final Field[] fields = { 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 new FriendsConnection$.Mapper(factory.friendsConnection$Factory()).map(reader); + Field.forObject("friendsConnection", "friendsConnection", null, false, new Field.ObjectReader<FriendsConnection1>() { + @Override public FriendsConnection1 read(final ResponseReader reader) throws IOException { + return new FriendsConnection1.Mapper(factory.friendsConnection1Factory()).map(reader); } }), Field.forString("primaryFunction", "primaryFunction", null, true) @@ -877,7 +877,7 @@ public void handle(final int fieldIndex, final Object value) throws IOException break; } case 1: { - contentValues.friendsConnection = (FriendsConnection$) value; + contentValues.friendsConnection = (FriendsConnection1) value; break; } case 2: { @@ -893,7 +893,7 @@ public void handle(final int fieldIndex, final Object value) throws IOException static final class __ContentValues { String name; - FriendsConnection$ friendsConnection; + FriendsConnection1 friendsConnection; String primaryFunction; } @@ -902,11 +902,11 @@ static final class __ContentValues { public interface Factory { @Nonnull Creator creator(); - @Nonnull FriendsConnection$.Factory friendsConnection$Factory(); + @Nonnull FriendsConnection1.Factory friendsConnection1Factory(); } public interface Creator { - @Nonnull AsDroid create(@Nonnull String name, @Nonnull FriendsConnection$ friendsConnection, + @Nonnull AsDroid create(@Nonnull String name, @Nonnull FriendsConnection1 friendsConnection, @Nullable String primaryFunction); } } diff --git a/apollo-compiler/src/test/graphql/com/example/unique_type_name/TestQueryExpected.java b/apollo-compiler/src/test/graphql/com/example/unique_type_name/HeroDetailQueryExpected.java similarity index 84% rename from apollo-compiler/src/test/graphql/com/example/unique_type_name/TestQueryExpected.java rename to apollo-compiler/src/test/graphql/com/example/unique_type_name/HeroDetailQueryExpected.java index 3cf21e39bce..feabcd92499 100644 --- a/apollo-compiler/src/test/graphql/com/example/unique_type_name/TestQueryExpected.java +++ b/apollo-compiler/src/test/graphql/com/example/unique_type_name/HeroDetailQueryExpected.java @@ -18,9 +18,9 @@ import javax.annotation.Nullable; @Generated("Apollo GraphQL") -public final class TestQuery implements Query<Operation.Variables> { - public static final String OPERATION_DEFINITION = "query TestQuery {\n" - + " hero {\n" +public final class HeroDetailQuery implements Query<Operation.Variables> { + public static final String OPERATION_DEFINITION = "query HeroDetailQuery {\n" + + " heroDetailQuery {\n" + " __typename\n" + " name\n" + " friends {\n" @@ -46,7 +46,7 @@ public final class TestQuery implements Query<Operation.Variables> { private final Operation.Variables variables; - public TestQuery() { + public HeroDetailQuery() { this.variables = Operation.EMPTY_VARIABLES; } @@ -61,9 +61,9 @@ public Operation.Variables variables() { } public interface Data extends Operation.Data { - @Nullable Hero hero(); + @Nullable HeroDetailQuery1 heroDetailQuery(); - interface Hero { + interface HeroDetailQuery1 { @Nonnull String name(); @Nullable List<? extends Friend> friends(); @@ -118,18 +118,18 @@ interface Creator { interface AsHuman { @Nonnull String name(); - @Nullable List<? extends Friend$> friends(); + @Nullable List<? extends Friend1> friends(); @Nullable Double height(); - interface Friend$ { + interface Friend1 { @Nonnull String name(); @Nonnull List<? extends Episode> appearsIn(); - @Nullable List<? extends Friend$$> friends(); + @Nullable List<? extends Friend2> friends(); - interface Friend$$ { + interface Friend2 { @Nonnull Fragments fragments(); interface Fragments { @@ -166,7 +166,7 @@ interface Creator { } } - final class Mapper implements ResponseFieldMapper<Friend$$> { + final class Mapper implements ResponseFieldMapper<Friend2> { final Factory factory; final Field[] fields = { @@ -184,7 +184,7 @@ public Mapper(@Nonnull Factory factory) { } @Override - public Friend$$ map(ResponseReader reader) throws IOException { + public Friend2 map(ResponseReader reader) throws IOException { final __ContentValues contentValues = new __ContentValues(); reader.toBufferedReader().read(new ResponseReader.ValueHandler() { @Override @@ -212,11 +212,11 @@ interface Factory { } interface Creator { - @Nonnull Friend$$ create(@Nonnull Fragments fragments); + @Nonnull Friend2 create(@Nonnull Fragments fragments); } } - final class Mapper implements ResponseFieldMapper<Friend$> { + final class Mapper implements ResponseFieldMapper<Friend1> { final Factory factory; final Field[] fields = { @@ -226,9 +226,9 @@ final class Mapper implements ResponseFieldMapper<Friend$> { return Episode.valueOf(reader.readString()); } }), - Field.forList("friends", "friends", null, true, new Field.ObjectReader<Friend$$>() { - @Override public Friend$$ read(final ResponseReader reader) throws IOException { - return new Friend$$.Mapper(factory.friend$$Factory()).map(reader); + Field.forList("friends", "friends", null, true, new Field.ObjectReader<Friend2>() { + @Override public Friend2 read(final ResponseReader reader) throws IOException { + return new Friend2.Mapper(factory.friend2Factory()).map(reader); } }) }; @@ -238,7 +238,7 @@ public Mapper(@Nonnull Factory factory) { } @Override - public Friend$ map(ResponseReader reader) throws IOException { + public Friend1 map(ResponseReader reader) throws IOException { final __ContentValues contentValues = new __ContentValues(); reader.read(new ResponseReader.ValueHandler() { @Override @@ -253,7 +253,7 @@ public void handle(final int fieldIndex, final Object value) throws IOException break; } case 2: { - contentValues.friends = (List<? extends Friend$$>) value; + contentValues.friends = (List<? extends Friend2>) value; break; } } @@ -267,20 +267,20 @@ static final class __ContentValues { List<? extends Episode> appearsIn; - List<? extends Friend$$> friends; + List<? extends Friend2> friends; } } interface Factory { @Nonnull Creator creator(); - @Nonnull Friend$$.Factory friend$$Factory(); + @Nonnull Friend2.Factory friend2Factory(); } interface Creator { - @Nonnull Friend$ create(@Nonnull String name, + @Nonnull Friend1 create(@Nonnull String name, @Nonnull List<? extends Episode> appearsIn, - @Nullable List<? extends Friend$$> friends); + @Nullable List<? extends Friend2> friends); } } @@ -289,9 +289,9 @@ final class Mapper implements ResponseFieldMapper<AsHuman> { final Field[] fields = { Field.forString("name", "name", null, false), - Field.forList("friends", "friends", null, true, new Field.ObjectReader<Friend$>() { - @Override public Friend$ read(final ResponseReader reader) throws IOException { - return new Friend$.Mapper(factory.friend$Factory()).map(reader); + Field.forList("friends", "friends", null, true, new Field.ObjectReader<Friend1>() { + @Override public Friend1 read(final ResponseReader reader) throws IOException { + return new Friend1.Mapper(factory.friend1Factory()).map(reader); } }), Field.forDouble("height", "height", null, true) @@ -313,7 +313,7 @@ public void handle(final int fieldIndex, final Object value) throws IOException break; } case 1: { - contentValues.friends = (List<? extends Friend$>) value; + contentValues.friends = (List<? extends Friend1>) value; break; } case 2: { @@ -329,7 +329,7 @@ public void handle(final int fieldIndex, final Object value) throws IOException static final class __ContentValues { String name; - List<? extends Friend$> friends; + List<? extends Friend1> friends; Double height; } @@ -338,16 +338,16 @@ static final class __ContentValues { interface Factory { @Nonnull Creator creator(); - @Nonnull Friend$.Factory friend$Factory(); + @Nonnull Friend1.Factory friend1Factory(); } interface Creator { - @Nonnull AsHuman create(@Nonnull String name, @Nullable List<? extends Friend$> friends, + @Nonnull AsHuman create(@Nonnull String name, @Nullable List<? extends Friend1> friends, @Nullable Double height); } } - final class Mapper implements ResponseFieldMapper<Hero> { + final class Mapper implements ResponseFieldMapper<HeroDetailQuery1> { final Factory factory; final Field[] fields = { @@ -374,7 +374,7 @@ public Mapper(@Nonnull Factory factory) { } @Override - public Hero map(ResponseReader reader) throws IOException { + public HeroDetailQuery1 map(ResponseReader reader) throws IOException { final __ContentValues contentValues = new __ContentValues(); reader.toBufferedReader().read(new ResponseReader.ValueHandler() { @Override @@ -416,8 +416,8 @@ interface Factory { } interface Creator { - @Nonnull Hero create(@Nonnull String name, @Nullable List<? extends Friend> friends, - @Nullable AsHuman asHuman); + @Nonnull HeroDetailQuery1 create(@Nonnull String name, + @Nullable List<? extends Friend> friends, @Nullable AsHuman asHuman); } } @@ -425,9 +425,9 @@ final class Mapper implements ResponseFieldMapper<Data> { final Factory factory; final Field[] fields = { - Field.forObject("hero", "hero", null, true, new Field.ObjectReader<Hero>() { - @Override public Hero read(final ResponseReader reader) throws IOException { - return new Hero.Mapper(factory.heroFactory()).map(reader); + Field.forObject("heroDetailQuery", "heroDetail", null, true, new Field.ObjectReader<HeroDetailQuery1>() { + @Override public HeroDetailQuery1 read(final ResponseReader reader) throws IOException { + return new HeroDetailQuery1.Mapper(factory.heroDetailQuery1Factory()).map(reader); } }) }; @@ -444,28 +444,28 @@ public Data map(ResponseReader reader) throws IOException { public void handle(final int fieldIndex, final Object value) throws IOException { switch (fieldIndex) { case 0: { - contentValues.hero = (Hero) value; + contentValues.heroDetailQuery = (HeroDetailQuery1) value; break; } } } }, fields); - return factory.creator().create(contentValues.hero); + return factory.creator().create(contentValues.heroDetailQuery); } static final class __ContentValues { - Hero hero; + HeroDetailQuery1 heroDetailQuery; } } interface Factory { @Nonnull Creator creator(); - @Nonnull Hero.Factory heroFactory(); + @Nonnull HeroDetailQuery1.Factory heroDetailQuery1Factory(); } interface Creator { - @Nonnull Data create(@Nullable Hero hero); + @Nonnull Data create(@Nullable HeroDetailQuery1 heroDetailQuery); } } } diff --git a/apollo-compiler/src/test/graphql/com/example/unique_type_name/TestQuery.json b/apollo-compiler/src/test/graphql/com/example/unique_type_name/TestQuery.json index 89bec587bb8..d80c4750844 100644 --- a/apollo-compiler/src/test/graphql/com/example/unique_type_name/TestQuery.json +++ b/apollo-compiler/src/test/graphql/com/example/unique_type_name/TestQuery.json @@ -1,14 +1,14 @@ { "operations": [ { - "operationName": "TestQuery", + "operationName": "HeroDetailQuery", "operationType": "query", "variables": [], - "source": "query TestQuery {\n hero {\n __typename\n name\n friends {\n __typename\n name\n }\n ... on Human {\n height\n friends {\n __typename\n appearsIn\n friends {\n __typename\n ...HeroDetails\n }\n }\n }\n }\n}", + "source": "query HeroDetailQuery {\n heroDetailQuery {\n __typename\n name\n friends {\n __typename\n name\n }\n ... on Human {\n height\n friends {\n __typename\n appearsIn\n friends {\n __typename\n ...HeroDetails\n }\n }\n }\n }\n}", "fields": [ { - "responseName": "hero", - "fieldName": "hero", + "responseName": "heroDetailQuery", + "fieldName": "heroDetail", "type": "Character", "fields": [ {