Skip to content

Commit 0bd2253

Browse files
committed
Fix code style issues reported by Sonar
1 parent 61641fa commit 0bd2253

File tree

8 files changed

+182
-152
lines changed

8 files changed

+182
-152
lines changed

src/main/java/com/kobylynskyi/graphql/codegen/GraphQLDocumentParser.java

Lines changed: 66 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -44,68 +44,51 @@ private GraphQLDocumentParser() {
4444
static ExtendedDocument getDocument(MappingConfig mappingConfig, List<String> schemaPaths) throws IOException {
4545
Document document = readDocument(schemaPaths);
4646

47-
Map<String, ExtendedObjectTypeDefinition> operationDefinitions = new HashMap<>();
48-
Map<String, ExtendedObjectTypeDefinition> typeDefinitions = new HashMap<>();
49-
Map<String, ExtendedInputObjectTypeDefinition> inputDefinitions = new HashMap<>();
50-
Map<String, ExtendedEnumTypeDefinition> enumDefinitions = new HashMap<>();
51-
Map<String, ExtendedScalarTypeDefinition> scalarDefinitions = new HashMap<>();
52-
Map<String, ExtendedInterfaceTypeDefinition> interfaceDefinitions = new HashMap<>();
53-
Map<String, ExtendedUnionTypeDefinition> unionDefinitions = new HashMap<>();
47+
ExtendedDocumentBuilder extendedDocumentBuilder = new ExtendedDocumentBuilder();
48+
5449
for (Definition<?> definition : document.getDefinitions()) {
55-
if (!(definition instanceof NamedNode)) {
56-
// the only definition that does not have a name is SchemaDefinition, so skipping it
57-
continue;
58-
}
59-
// we need to group base definitions and extension definitions by name
60-
String definitionName = ((NamedNode<?>) definition).getName();
61-
62-
if (definition instanceof ObjectTypeDefinition) {
63-
if (Utils.isGraphqlOperation(definitionName)) {
64-
populateDefinition(operationDefinitions, definition, definitionName,
65-
ObjectTypeDefinition.class, ObjectTypeExtensionDefinition.class,
66-
s -> new ExtendedObjectTypeDefinition());
67-
if (Boolean.TRUE.equals(mappingConfig.getGenerateModelsForRootTypes())) {
68-
populateDefinition(typeDefinitions, definition, definitionName,
69-
ObjectTypeDefinition.class, ObjectTypeExtensionDefinition.class,
70-
s -> new ExtendedObjectTypeDefinition());
71-
}
72-
} else {
73-
populateDefinition(typeDefinitions, definition, definitionName,
74-
ObjectTypeDefinition.class, ObjectTypeExtensionDefinition.class,
75-
s -> new ExtendedObjectTypeDefinition());
50+
processDefinition(mappingConfig, extendedDocumentBuilder, definition);
51+
}
52+
return extendedDocumentBuilder.build();
53+
}
54+
55+
private static void processDefinition(MappingConfig mappingConfig, ExtendedDocumentBuilder extendedDocumentBuilder, Definition<?> definition) {
56+
if (!(definition instanceof NamedNode)) {
57+
// the only definition that does not have a name is SchemaDefinition, so skipping it
58+
return;
59+
}
60+
// we need to group base definitions and extension definitions by name
61+
String definitionName = ((NamedNode<?>) definition).getName();
62+
63+
if (definition instanceof ObjectTypeDefinition) {
64+
if (Utils.isGraphqlOperation(definitionName)) {
65+
populateDefinition(extendedDocumentBuilder.operationDefinitions, definition, definitionName,
66+
ObjectTypeExtensionDefinition.class, s -> new ExtendedObjectTypeDefinition());
67+
if (Boolean.TRUE.equals(mappingConfig.getGenerateModelsForRootTypes())) {
68+
populateDefinition(extendedDocumentBuilder.typeDefinitions, definition, definitionName,
69+
ObjectTypeExtensionDefinition.class, s -> new ExtendedObjectTypeDefinition());
7670
}
77-
} else if (definition instanceof EnumTypeDefinition) {
78-
populateDefinition(enumDefinitions, definition, definitionName,
79-
EnumTypeDefinition.class, EnumTypeExtensionDefinition.class,
80-
s -> new ExtendedEnumTypeDefinition());
81-
} else if (definition instanceof InputObjectTypeDefinition) {
82-
populateDefinition(inputDefinitions, definition, definitionName,
83-
InputObjectTypeDefinition.class, InputObjectTypeExtensionDefinition.class,
84-
s -> new ExtendedInputObjectTypeDefinition());
85-
} else if (definition instanceof UnionTypeDefinition) {
86-
populateDefinition(unionDefinitions, definition, definitionName,
87-
UnionTypeDefinition.class, UnionTypeExtensionDefinition.class,
88-
s -> new ExtendedUnionTypeDefinition());
89-
} else if (definition instanceof ScalarTypeDefinition) {
90-
populateDefinition(scalarDefinitions, definition, definitionName,
91-
ScalarTypeDefinition.class, ScalarTypeExtensionDefinition.class,
92-
s -> new ExtendedScalarTypeDefinition());
93-
} else if (definition instanceof InterfaceTypeDefinition) {
94-
populateDefinition(interfaceDefinitions, definition, definitionName,
95-
InterfaceTypeDefinition.class, InterfaceTypeExtensionDefinition.class,
96-
s -> new ExtendedInterfaceTypeDefinition());
71+
} else {
72+
populateDefinition(extendedDocumentBuilder.typeDefinitions, definition, definitionName,
73+
ObjectTypeExtensionDefinition.class, s -> new ExtendedObjectTypeDefinition());
9774
}
98-
// TODO: consider DirectiveDefinition
75+
} else if (definition instanceof EnumTypeDefinition) {
76+
populateDefinition(extendedDocumentBuilder.enumDefinitions, definition, definitionName,
77+
EnumTypeExtensionDefinition.class, s -> new ExtendedEnumTypeDefinition());
78+
} else if (definition instanceof InputObjectTypeDefinition) {
79+
populateDefinition(extendedDocumentBuilder.inputDefinitions, definition, definitionName,
80+
InputObjectTypeExtensionDefinition.class, s -> new ExtendedInputObjectTypeDefinition());
81+
} else if (definition instanceof UnionTypeDefinition) {
82+
populateDefinition(extendedDocumentBuilder.unionDefinitions, definition, definitionName,
83+
UnionTypeExtensionDefinition.class, s -> new ExtendedUnionTypeDefinition());
84+
} else if (definition instanceof ScalarTypeDefinition) {
85+
populateDefinition(extendedDocumentBuilder.scalarDefinitions, definition, definitionName,
86+
ScalarTypeExtensionDefinition.class, s -> new ExtendedScalarTypeDefinition());
87+
} else if (definition instanceof InterfaceTypeDefinition) {
88+
populateDefinition(extendedDocumentBuilder.interfaceDefinitions, definition, definitionName,
89+
InterfaceTypeExtensionDefinition.class, s -> new ExtendedInterfaceTypeDefinition());
9990
}
100-
return ExtendedDocument.builder()
101-
.operationDefinitions(operationDefinitions.values())
102-
.typeDefinitions(typeDefinitions.values())
103-
.inputDefinitions(inputDefinitions.values())
104-
.enumDefinitions(enumDefinitions.values())
105-
.scalarDefinitions(scalarDefinitions.values())
106-
.interfaceDefinitions(interfaceDefinitions.values())
107-
.unionDefinitions(unionDefinitions.values())
108-
.build();
91+
// TODO: consider DirectiveDefinition
10992
}
11093

11194
@SuppressWarnings("unchecked")
@@ -115,7 +98,6 @@ static ExtendedDocument getDocument(MappingConfig mappingConfig, List<String> sc
11598
E extends B> void populateDefinition(Map<String, D> definitionsMap,
11699
Definition<?> definition,
117100
String definitionName,
118-
Class<B> baseDefinitionClass,
119101
Class<E> extensionDefinitionClass,
120102
Function<String, D> mappingFunction) {
121103
D extendedDefinition = definitionsMap.computeIfAbsent(definitionName, mappingFunction);
@@ -144,4 +126,29 @@ public static MultiSourceReader createMultiSourceReader(List<String> schemaPaths
144126
}
145127
return builder.trackData(true).build();
146128
}
129+
130+
private static class ExtendedDocumentBuilder {
131+
132+
private final Map<String, ExtendedObjectTypeDefinition> operationDefinitions = new HashMap<>();
133+
private final Map<String, ExtendedObjectTypeDefinition> typeDefinitions = new HashMap<>();
134+
private final Map<String, ExtendedInputObjectTypeDefinition> inputDefinitions = new HashMap<>();
135+
private final Map<String, ExtendedEnumTypeDefinition> enumDefinitions = new HashMap<>();
136+
private final Map<String, ExtendedScalarTypeDefinition> scalarDefinitions = new HashMap<>();
137+
private final Map<String, ExtendedInterfaceTypeDefinition> interfaceDefinitions = new HashMap<>();
138+
private final Map<String, ExtendedUnionTypeDefinition> unionDefinitions = new HashMap<>();
139+
140+
ExtendedDocument build() {
141+
return ExtendedDocument.builder()
142+
.operationDefinitions(operationDefinitions.values())
143+
.typeDefinitions(typeDefinitions.values())
144+
.inputDefinitions(inputDefinitions.values())
145+
.enumDefinitions(enumDefinitions.values())
146+
.scalarDefinitions(scalarDefinitions.values())
147+
.interfaceDefinitions(interfaceDefinitions.values())
148+
.unionDefinitions(unionDefinitions.values())
149+
.build();
150+
}
151+
152+
}
153+
147154
}

0 commit comments

Comments
 (0)