11package com .intuit .graphql .orchestrator .schema .fold ;
22
3+ import static com .intuit .graphql .orchestrator .schema .fold .FieldMergeValidations .checkMergeEligibility ;
4+ import static com .intuit .graphql .orchestrator .utils .DescriptionUtils .mergeDescriptions ;
5+ import static com .intuit .graphql .orchestrator .xtext .DataFetcherContext .STATIC_DATAFETCHER_CONTEXT ;
6+ import static com .intuit .graphql .orchestrator .xtext .GraphQLFactoryDelegate .createObjectType ;
7+ import static com .intuit .graphql .utils .XtextTypeUtils .unwrapAll ;
8+
39import com .intuit .graphql .graphQL .EnumTypeDefinition ;
410import com .intuit .graphql .graphQL .EnumValueDefinition ;
511import com .intuit .graphql .graphQL .FieldDefinition ;
1925import com .intuit .graphql .orchestrator .xtext .FieldContext ;
2026import com .intuit .graphql .orchestrator .xtext .XtextGraph ;
2127import com .intuit .graphql .utils .XtextTypeUtils ;
22- import org .eclipse .emf .common .util .EList ;
23- import org .eclipse .emf .ecore .util .EcoreUtil ;
24-
2528import java .util .Collection ;
2629import java .util .EnumMap ;
2730import java .util .HashMap ;
3033import java .util .Optional ;
3134import java .util .Set ;
3235import java .util .stream .Collectors ;
33-
34- import static com .intuit .graphql .orchestrator .schema .fold .FieldMergeValidations .checkMergeEligibility ;
35- import static com .intuit .graphql .orchestrator .utils .DescriptionUtils .mergeDescriptions ;
36- import static com .intuit .graphql .orchestrator .xtext .DataFetcherContext .STATIC_DATAFETCHER_CONTEXT ;
37- import static com .intuit .graphql .orchestrator .xtext .GraphQLFactoryDelegate .createObjectType ;
38- import static com .intuit .graphql .utils .XtextTypeUtils .unwrapAll ;
36+ import org .eclipse .emf .common .util .EList ;
37+ import org .eclipse .emf .ecore .util .EcoreUtil ;
3938
4039public class XtextGraphFolder implements Foldable <XtextGraph > {
4140
@@ -69,18 +68,21 @@ private XtextGraph merge(XtextGraph accumulator, XtextGraph current) {
6968 merge (accumulator .getOperationType (op ), current .getOperationType (op ), current .getServiceProvider ()));
7069 }
7170
72- if (current .isFederationService ()) {
71+ if (current .getServiceProvider (). isFederationProvider ()) {
7372 current .getValueTypesByName ().values ()
74- .forEach (incomingSharedType -> {
75- TypeDefinition preexistingTypeDefinition = accumulator .getType (incomingSharedType .getName ());
76- if (incomingSharedType instanceof EnumTypeDefinition ) {
77- mergeSharedValueType ((EnumTypeDefinition ) preexistingTypeDefinition , (EnumTypeDefinition ) incomingSharedType , current .getServiceProvider ());
78- } else if (incomingSharedType instanceof ObjectTypeDefinition ) {
79- mergeSharedValueType ((ObjectTypeDefinition ) preexistingTypeDefinition , (ObjectTypeDefinition ) incomingSharedType , current .getServiceProvider ());
80- } else if (incomingSharedType instanceof InterfaceTypeDefinition ) {
81- mergeSharedValueType ((InterfaceTypeDefinition ) preexistingTypeDefinition , (InterfaceTypeDefinition ) incomingSharedType , current .getServiceProvider ());
82- }
83- });
73+ .forEach (incomingSharedType -> {
74+ TypeDefinition preexistingTypeDefinition = accumulator .getType (incomingSharedType .getName ());
75+ if (incomingSharedType instanceof EnumTypeDefinition ) {
76+ mergeSharedValueType ((EnumTypeDefinition ) preexistingTypeDefinition ,
77+ (EnumTypeDefinition ) incomingSharedType , current .getServiceProvider ());
78+ } else if (incomingSharedType instanceof ObjectTypeDefinition ) {
79+ mergeSharedValueType ((ObjectTypeDefinition ) preexistingTypeDefinition ,
80+ (ObjectTypeDefinition ) incomingSharedType , current .getServiceProvider ());
81+ } else if (incomingSharedType instanceof InterfaceTypeDefinition ) {
82+ mergeSharedValueType ((InterfaceTypeDefinition ) preexistingTypeDefinition ,
83+ (InterfaceTypeDefinition ) incomingSharedType , current .getServiceProvider ());
84+ }
85+ });
8486 }
8587
8688 resolveTypeConflicts (accumulator .getTypes (), current .getTypes (), current );
@@ -118,7 +120,8 @@ private void resolveTypeConflicts(final Map<String, TypeDefinition> existing,
118120 TypeDefinition existingType = existing .get (typeName );
119121 if (Objects .nonNull (existingType ) && !nestedTypes .containsKey (existingType .getName ())) {
120122 TypeDefinition conflictingType = current .get (typeName );
121- XtextTypeConflictResolver .INSTANCE .resolve (conflictingType , existingType , currentGraph .getServiceProvider ().isFederationProvider ());
123+ XtextTypeConflictResolver .INSTANCE
124+ .resolve (conflictingType , existingType , currentGraph .getServiceProvider ().isFederationProvider ());
122125 }
123126 }
124127 }
@@ -170,7 +173,7 @@ private ObjectTypeDefinition merge(ObjectTypeDefinition current, ObjectTypeDefin
170173 * @return merged object
171174 */
172175 private TypeDefinition mergeSharedValueType (EnumTypeDefinition current , EnumTypeDefinition newComer ,
173- ServiceProvider newComerServiceProvider ) {
176+ ServiceProvider newComerServiceProvider ) {
174177 //nothing to merge
175178 if (current == null || !newComerServiceProvider .isFederationProvider ()) {
176179 return current ;
@@ -194,15 +197,15 @@ private TypeDefinition mergeSharedValueType(EnumTypeDefinition current, EnumType
194197 }
195198
196199 private TypeDefinition mergeSharedValueType (ObjectTypeDefinition current , ObjectTypeDefinition newComer ,
197- ServiceProvider newComerServiceProvider ) {
200+ ServiceProvider newComerServiceProvider ) {
198201 if (current == null || !newComerServiceProvider .isFederationProvider ()) {
199202 return current ;
200203 }
201204
202205 newComer .getFieldDefinition ().forEach (newField -> {
203206 Optional <FieldDefinition > currentField = current .getFieldDefinition ().stream ()
204- .filter (fieldName -> newField .getName ().equals (fieldName .getName ()))
205- .findFirst ();
207+ .filter (fieldName -> newField .getName ().equals (fieldName .getName ()))
208+ .findFirst ();
206209
207210 if (!currentField .isPresent ()) {
208211 addNewFieldToObject (current , newField , newComerServiceProvider );
@@ -217,15 +220,15 @@ private TypeDefinition mergeSharedValueType(ObjectTypeDefinition current, Object
217220 }
218221
219222 private TypeDefinition mergeSharedValueType (InterfaceTypeDefinition current , InterfaceTypeDefinition newComer ,
220- ServiceProvider newComerServiceProvider ) {
223+ ServiceProvider newComerServiceProvider ) {
221224 if (current == null || !newComerServiceProvider .isFederationProvider ()) {
222225 return current ;
223226 }
224227
225228 newComer .getFieldDefinition ().forEach (newField -> {
226229 Optional <FieldDefinition > currentField = current .getFieldDefinition ().stream ()
227- .filter (fieldName -> newField .getName ().equals (fieldName .getName ()))
228- .findFirst ();
230+ .filter (fieldName -> newField .getName ().equals (fieldName .getName ()))
231+ .findFirst ();
229232
230233 if (!currentField .isPresent ()) {
231234 addNewFieldToObject (current , newField , newComerServiceProvider );
@@ -281,13 +284,13 @@ private void addNewFieldToObject(ObjectTypeDefinition objectTypeDefinition, Fiel
281284
282285
283286 private void addNewFieldToObject (EnumTypeDefinition enumTypeDefinition , EnumValueDefinition valueDefinition ,
284- ServiceProvider serviceProvider ) {
287+ ServiceProvider serviceProvider ) {
285288 addFieldContextToRegistry (enumTypeDefinition .getName (), valueDefinition .getEnumValue (), serviceProvider );
286289 enumTypeDefinition .getEnumValueDefinition ().add (EcoreUtil .copy (valueDefinition ));
287290 }
288291
289292 private void addNewFieldToObject (InterfaceTypeDefinition interfaceTypeDefinition , FieldDefinition fieldDefinition ,
290- ServiceProvider serviceProvider ) {
293+ ServiceProvider serviceProvider ) {
291294 addFieldContextToRegistry (interfaceTypeDefinition .getName (), fieldDefinition .getName (), serviceProvider );
292295 interfaceTypeDefinition .getFieldDefinition ().add (EcoreUtil .copy (fieldDefinition ));
293296 }
@@ -297,7 +300,7 @@ private void addFieldContextToRegistry(String parentName, String definitionName,
297300 final FieldContext fieldContext = new FieldContext (parentName , definitionName );
298301
299302 accCodeRegistry .put (fieldContext , DataFetcherContext .newBuilder ().namespace (serviceProvider .getNameSpace ())
300- .serviceType (serviceProvider .getSeviceType ()).build ());
303+ .serviceType (serviceProvider .getSeviceType ()).build ());
301304 }
302305
303306 /**
0 commit comments