Skip to content

Commit 6748d65

Browse files
Merge pull request #150 from graph-quilt/type-conflict-message-fix
Fixing conflicting type error message with descriptive name
2 parents d08a8ca + 39534cc commit 6748d65

File tree

2 files changed

+30
-28
lines changed

2 files changed

+30
-28
lines changed

src/main/java/com/intuit/graphql/orchestrator/schema/type/conflict/resolver/XtextTypeConflictResolver.java

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,5 @@
11
package com.intuit.graphql.orchestrator.schema.type.conflict.resolver;
22

3-
import com.intuit.graphql.graphQL.EnumTypeDefinition;
4-
import com.intuit.graphql.graphQL.InterfaceTypeDefinition;
5-
import com.intuit.graphql.graphQL.ObjectTypeDefinition;
6-
import com.intuit.graphql.graphQL.TypeDefinition;
7-
import com.intuit.graphql.graphQL.UnionTypeDefinition;
8-
import org.apache.commons.lang3.StringUtils;
9-
10-
import java.util.Arrays;
11-
import java.util.HashSet;
12-
import java.util.Set;
13-
143
import static com.intuit.graphql.orchestrator.resolverdirective.FieldResolverDirectiveUtil.RESOLVER_ARGUMENT_INPUT_NAME;
154
import static com.intuit.graphql.orchestrator.utils.FederationConstants.FEDERATION_EXTENDS_DIRECTIVE;
165
import static com.intuit.graphql.orchestrator.utils.XtextTypeUtils.checkFieldsCompatibility;
@@ -20,6 +9,16 @@
209
import static com.intuit.graphql.orchestrator.utils.XtextTypeUtils.toDescriptiveString;
2110
import static com.intuit.graphql.orchestrator.utils.XtextUtils.definitionContainsDirective;
2211

12+
import com.intuit.graphql.graphQL.EnumTypeDefinition;
13+
import com.intuit.graphql.graphQL.InterfaceTypeDefinition;
14+
import com.intuit.graphql.graphQL.ObjectTypeDefinition;
15+
import com.intuit.graphql.graphQL.TypeDefinition;
16+
import com.intuit.graphql.graphQL.UnionTypeDefinition;
17+
import java.util.Arrays;
18+
import java.util.HashSet;
19+
import java.util.Set;
20+
import org.apache.commons.lang3.StringUtils;
21+
2322
public class XtextTypeConflictResolver {
2423

2524
public static final XtextTypeConflictResolver INSTANCE = new XtextTypeConflictResolver();
@@ -56,7 +55,9 @@ private void checkSharedType(final TypeDefinition conflictingType, final TypeDef
5655

5756
if(!isInaccessibleComparison) {
5857
if(isEntity(conflictingType) != isEntity(existingType)) {
59-
throw new TypeConflictException("Type %s is conflicting with existing type %s. Only one of the types are an entity.");
58+
throw new TypeConflictException(String.format("Type %s is conflicting with existing type %s. Only one of the types are an entity.",
59+
toDescriptiveString(conflictingType),
60+
toDescriptiveString(existingType)));
6061
}
6162

6263
//In this specific case one is an entity and another is not an entity

src/main/java/com/intuit/graphql/orchestrator/utils/XtextTypeUtils.java

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
package com.intuit.graphql.orchestrator.utils;
22

3+
import static com.intuit.graphql.orchestrator.utils.FederationConstants.FEDERATION_INACCESSIBLE_DIRECTIVE;
4+
import static com.intuit.graphql.orchestrator.utils.FederationConstants.FEDERATION_KEY_DIRECTIVE;
5+
import static com.intuit.graphql.orchestrator.utils.XtextUtils.definitionContainsDirective;
6+
import static com.intuit.graphql.utils.XtextTypeUtils.getObjectType;
7+
import static com.intuit.graphql.utils.XtextTypeUtils.isNonNull;
8+
import static com.intuit.graphql.utils.XtextTypeUtils.isWrapped;
9+
import static com.intuit.graphql.utils.XtextTypeUtils.typeName;
10+
import static com.intuit.graphql.utils.XtextTypeUtils.unwrapAll;
11+
import static com.intuit.graphql.utils.XtextTypeUtils.unwrapOne;
12+
import static java.lang.String.format;
13+
314
import com.intuit.graphql.graphQL.ArgumentsDefinition;
415
import com.intuit.graphql.graphQL.Directive;
516
import com.intuit.graphql.graphQL.EnumTypeDefinition;
@@ -22,27 +33,15 @@
2233
import com.intuit.graphql.graphQL.impl.PrimitiveTypeImpl;
2334
import com.intuit.graphql.orchestrator.schema.type.conflict.resolver.TypeConflictException;
2435
import com.intuit.graphql.orchestrator.xtext.GraphQLFactoryDelegate;
25-
import org.apache.commons.lang3.StringUtils;
26-
import org.eclipse.emf.common.util.EList;
27-
import org.eclipse.emf.ecore.EObject;
28-
2936
import java.util.ArrayList;
3037
import java.util.List;
3138
import java.util.Map;
3239
import java.util.Objects;
3340
import java.util.function.Function;
3441
import java.util.stream.Collectors;
35-
36-
import static com.intuit.graphql.orchestrator.utils.FederationConstants.FEDERATION_INACCESSIBLE_DIRECTIVE;
37-
import static com.intuit.graphql.orchestrator.utils.FederationConstants.FEDERATION_KEY_DIRECTIVE;
38-
import static com.intuit.graphql.orchestrator.utils.XtextUtils.definitionContainsDirective;
39-
import static com.intuit.graphql.utils.XtextTypeUtils.getObjectType;
40-
import static com.intuit.graphql.utils.XtextTypeUtils.isNonNull;
41-
import static com.intuit.graphql.utils.XtextTypeUtils.isWrapped;
42-
import static com.intuit.graphql.utils.XtextTypeUtils.typeName;
43-
import static com.intuit.graphql.utils.XtextTypeUtils.unwrapAll;
44-
import static com.intuit.graphql.utils.XtextTypeUtils.unwrapOne;
45-
import static java.lang.String.format;
42+
import org.apache.commons.lang3.StringUtils;
43+
import org.eclipse.emf.common.util.EList;
44+
import org.eclipse.emf.ecore.EObject;
4645

4746
public class XtextTypeUtils {
4847

@@ -249,7 +248,9 @@ public static void checkFieldsCompatibility(final TypeDefinition existingTypeDef
249248

250249
if(federatedComparison) {
251250
if(isEntity(conflictingTypeDefinition) != isEntity(existingTypeDefinition)) {
252-
throw new TypeConflictException("Type %s is conflicting with existing type %s. Only one of the types are an entity.");
251+
throw new TypeConflictException(String.format("Type %s is conflicting with existing type %s. Only one of the types are an entity.",
252+
toDescriptiveString(conflictingTypeDefinition),
253+
toDescriptiveString(existingTypeDefinition)));
253254
}
254255

255256
for(FieldDefinition fieldDefinition :possibleConflictingFieldMap.values()) {

0 commit comments

Comments
 (0)