in data-index/data-index-graphql/src/main/java/org/kie/kogito/index/graphql/query/GraphQLQueryMapper.java [75:125]
public GraphQLQueryParser apply(GraphQLInputObjectType type) {
GraphQLQueryParser parser = new GraphQLQueryParser();
type.getFields().forEach(
field -> {
LOGGER.debug("Parser type: {}, field = {}:{}", type.getName(), field.getName(), simplePrint(field.getType()));
if (isEnumFilterType(field.getType())) {
parser.mapAttribute(field.getName(), mapEnumArgument(field.getName()));
} else if (isListOfType(field.getType(), type.getName())) {
parser.mapAttribute(field.getName(), mapRecursiveListArgument(field.getName(), parser));
} else if (((GraphQLNamedType) field.getType()).getName().equals(type.getName())) {
parser.mapAttribute(field.getName(), mapRecursiveArgument(field.getName(), parser));
} else {
String name = ((GraphQLNamedType) field.getType()).getName();
switch (name) {
case "IdArgument":
parser.mapAttribute(field.getName(), mapIdArgument(field.getName()));
break;
case "StringArgument":
parser.mapAttribute(field.getName(), mapStringArgument(field.getName()));
break;
case "StringArrayArgument":
parser.mapAttribute(field.getName(), mapStringArrayArgument(field.getName()));
break;
case "BooleanArgument":
parser.mapAttribute(field.getName(), mapBooleanArgument(field.getName()));
break;
case "DateArgument":
parser.mapAttribute(field.getName(), mapDateArgument(field.getName()));
break;
case "NumericArgument":
case "FloatArgument":
case "BigDecimalArgument":
case "LongArgument":
parser.mapAttribute(field.getName(), mapNumericArgument(field.getName()));
break;
case "KogitoMetadataArgument":
parser.mapAttribute(field.getName(), mapSubEntityArgument(field.getName(), GraphQLQueryParserRegistry.get().getParser("KogitoMetadataArgument")));
break;
case "JSON":
parser.mapAttribute(field.getName(), mapJsonArgument(field.getName()));
break;
default:
if (field.getType() instanceof GraphQLInputObjectType) {
parser.mapAttribute(field.getName(), mapSubEntityArgument(field.getName(), new GraphQLQueryMapper().apply((GraphQLInputObjectType) field.getType())));
}
}
}
});
return parser;
}