未验证 提交 5d50246c 编写于 作者: R Robbert Noordzij 提交者: GitHub

Fix Sonar issues (#666)

* Fix null check

* Remove code duplication
Co-authored-by: NRobbert Noordzij <robbert@robbertnoordzij.nl>
上级 3b430786
......@@ -270,7 +270,11 @@ public interface GraphQLTypeMapper {
}
default List<String> getAnnotations(MappingContext mappingContext, ExtendedDefinition<?, ?> extendedDefinition) {
NamedNode def = extendedDefinition != null ? extendedDefinition.getDefinition() : null;
if(extendedDefinition == null) {
return Collections.emptyList();
}
NamedNode<?> def = extendedDefinition.getDefinition();
return getAnnotations(mappingContext, extendedDefinition.getName(), extendedDefinition.getName(), null,
extendedDefinition.getDirectives(), false, def);
}
......@@ -286,7 +290,7 @@ public interface GraphQLTypeMapper {
* @param def GraphQL definition
* @return list of Jackson type id resolver annotations
*/
default List<String> getJacksonTypeIdAnnotations(MappingContext mappingContext, NamedNode def) {
default List<String> getJacksonTypeIdAnnotations(MappingContext mappingContext, NamedNode<?> def) {
List<String> defaults = new ArrayList<>();
if (Boolean.TRUE.equals(mappingContext.getGenerateJacksonTypeIdResolver())
&& def instanceof UnionTypeDefinition) {
......@@ -329,7 +333,7 @@ public interface GraphQLTypeMapper {
*/
default List<String> getAnnotations(MappingContext mappingContext, String graphQLTypeName, String name,
String parentTypeName, List<Directive> directives, boolean mandatory,
NamedNode def) {
NamedNode<?> def) {
List<String> annotations = new ArrayList<>();
if (mandatory) {
String possiblyPrimitiveType = mappingContext.getCustomTypesMapping()
......
......@@ -14,6 +14,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* Base class for all GraphQL definition types that contains base definition and its extensions
......@@ -101,18 +102,9 @@ public abstract class ExtendedDefinition<T extends NamedNode<T>, E extends T> {
* @return list of directive names
*/
public List<String> getDirectiveNames() {
List<String> directives = new ArrayList<>();
if (this.definition instanceof DirectivesContainer) {
List<Directive> definitionDirectives = ((DirectivesContainer<?>) this.definition).getDirectives();
if (!Utils.isEmpty(definitionDirectives)) {
definitionDirectives.stream().map(Directive::getName).forEach(directives::add);
}
this.extensions.stream().filter(Objects::nonNull)
.map(DirectivesContainer.class::cast)
.map(DirectivesContainer::getDirectives).filter(Objects::nonNull)
.forEach(ds -> ds.forEach(d -> directives.add(((Directive) d).getName())));
}
return directives;
return getDirectives().stream()
.map(Directive::getName)
.collect(Collectors.toList());
}
/**
......@@ -127,10 +119,12 @@ public abstract class ExtendedDefinition<T extends NamedNode<T>, E extends T> {
if (!Utils.isEmpty(definitionDirectives)) {
directives.addAll(definitionDirectives);
}
this.extensions.stream().filter(Objects::nonNull)
this.extensions.stream()
.filter(Objects::nonNull)
.map(DirectivesContainer.class::cast)
.map(DirectivesContainer::getDirectives).filter(Objects::nonNull)
.forEach(ds -> ds.forEach(d -> directives.add(((Directive) d))));
.map(DirectivesContainer::getDirectives)
.filter(dc -> !Utils.isEmpty(dc))
.forEach(directives::addAll);
}
return directives;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册