|
1 | 1 | package com.kobylynskyi.graphql.codegen.mapper;
|
2 | 2 |
|
3 |
| -import com.kobylynskyi.graphql.codegen.model.GeneratedLanguage; |
| 3 | +import com.kobylynskyi.graphql.codegen.model.DeprecatedDefinition; |
4 | 4 | import com.kobylynskyi.graphql.codegen.model.MappingContext;
|
| 5 | +import com.kobylynskyi.graphql.codegen.model.MultiLanguageDeprecated; |
5 | 6 | import com.kobylynskyi.graphql.codegen.model.NamedDefinition;
|
6 | 7 | import com.kobylynskyi.graphql.codegen.model.definitions.ExtendedDefinition;
|
7 | 8 | import com.kobylynskyi.graphql.codegen.utils.Utils;
|
8 |
| -import graphql.language.Argument; |
9 |
| -import graphql.language.Directive; |
10 |
| -import graphql.language.DirectivesContainer; |
11 |
| -import graphql.language.ListType; |
12 |
| -import graphql.language.NamedNode; |
13 |
| -import graphql.language.NonNullType; |
14 |
| -import graphql.language.Type; |
15 |
| -import graphql.language.TypeName; |
| 9 | +import graphql.language.*; |
16 | 10 |
|
17 |
| -import java.util.ArrayList; |
18 |
| -import java.util.Collections; |
19 |
| -import java.util.List; |
20 |
| -import java.util.Map; |
21 |
| -import java.util.Set; |
| 11 | +import java.util.*; |
22 | 12 |
|
23 | 13 | /**
|
24 | 14 | * Map GraphQL type to language-specific type (java/scala/kotlin/etc)
|
@@ -213,9 +203,7 @@ default NamedDefinition getLanguageType(MappingContext mappingContext, String gr
|
213 | 203 | if (name != null && parentTypeName != null && customTypesMapping.containsKey(parentTypeName + "." + name)) {
|
214 | 204 | langTypeName = customTypesMapping.get(parentTypeName + "." + name);
|
215 | 205 | primitiveCanBeUsed = false;
|
216 |
| - } else if (mandatory && customTypesMapping.containsKey(getMandatoryType(graphQLType)) && |
217 |
| - !mappingContext.getGeneratedLanguage().equals(GeneratedLanguage.JAVA)){ |
218 |
| - //Java primitive types can't be used as generic parameters this, but Scala/Kotlin can |
| 206 | + } else if (mandatory && customTypesMapping.containsKey(getMandatoryType(graphQLType))) { |
219 | 207 | langTypeName = customTypesMapping.get(getMandatoryType(graphQLType));
|
220 | 208 | } else if (customTypesMapping.containsKey(graphQLType)) {
|
221 | 209 | langTypeName = customTypesMapping.get(graphQLType);
|
@@ -330,5 +318,14 @@ default String getTypeConsideringPrimitive(MappingContext mappingContext,
|
330 | 318 | return computedTypeName;
|
331 | 319 | }
|
332 | 320 |
|
| 321 | + default DeprecatedDefinition getDeprecated(MappingContext mappingContext, DirectivesContainer<?> directivesContainer) { |
| 322 | + return directivesContainer.getDirectives() |
| 323 | + .stream() |
| 324 | + .filter(d -> d.getName().equalsIgnoreCase(Deprecated.class.getSimpleName())) |
| 325 | + .findFirst() |
| 326 | + .map(directive -> MultiLanguageDeprecated.getLanguageDeprecated(mappingContext.getGeneratedLanguage(), directive)) |
| 327 | + .orElse(null); |
| 328 | + } |
| 329 | + |
333 | 330 |
|
334 | 331 | }
|
0 commit comments