public boolean isCollectionType() { Class<?> rawCls = resolve(); return Collection.class.isAssignableFrom(rawCls); }
public boolean isArrayType() { Class<?> rawCls = resolve(); return rawCls.isArray() || Iterable.class.equals(rawCls); }
public Class<?> getRawType() { return getResolvableTypeAccessor().resolve(); }
public GraphQLMethodParameters(Method method, Class<?> implClass) { super(method, implClass); ResolvableTypeAccessor resolvableTypeAccessor = ResolvableTypeAccessor.forMethodReturnType(method, implClass); returnType = resolvableTypeAccessor.resolve(); returnTypeName = resolvableTypeAccessor.getGraphQLOutName(); }
public GraphQLInputType buildGraphQLInputTypeFromMethodParam(DfsContext dfsContext, ResolvableTypeAccessor resolvableTypeAccessor) { Class<?> cls = resolvableTypeAccessor.resolve(); GraphQLInputType graphQLInputObjectType = (GraphQLInputType) objectTypeResolverMap.get(cls); if (graphQLInputObjectType == null) graphQLInputObjectType = (GraphQLInputType) createGraphQLFieldType(dfsContext, resolvableTypeAccessor, false); if (graphQLInputObjectType == null) { // -- class as input parameter final List<GraphQLInputObjectField> graphQLInputFieldDefinitions = new ArrayList<GraphQLInputObjectField>(); ReflectionUtils.getAllFields(cls).forEach(field -> { GraphQLInputObjectField definition = buildGraphQLInputObjectField(dfsContext, field, cls); if (definition != null) graphQLInputFieldDefinitions.add(definition); }); graphQLInputObjectType = newInputObject() .name(cls.getSimpleName()) .description(resolvableTypeAccessor.getDescription()) .fields(graphQLInputFieldDefinitions) .build(); } return graphQLInputObjectType; }
public Class<?> getActualType() { Class<?> type = resolve(); if (isArrayType()) { type = (Class<?>) getComponentType(); } if (isCollectionType()) { type = resolvableType.getGeneric(0).resolve(); } return type; } }
public GraphQLObjectType createGraphQLOutputObjectType(DfsContext dfsContext, String mutationName, ResolvableTypeAccessor resolvableTypeAccessor) { Class<?> cls = resolvableTypeAccessor.resolve(); GraphQLType graphQLObjectType = objectTypeResolverMap.get(cls); if (graphQLObjectType == null) graphQLObjectType = createGraphQLFieldType(dfsContext, resolvableTypeAccessor, true); GraphQLOutputType clientMutationIdType = getGraphQLSchemaConfig().isAllowEmptyClientMutationId() ? GraphQLString : new GraphQLNonNull(GraphQLString); addToMutationReturnTypeResolverMap(dfsContext, mutationName, cls, (GraphQLOutputType) graphQLObjectType); GraphQLFieldDefinition graphQLFieldDefinition = newFieldDefinition() .name(resolvableTypeAccessor.getGraphQLOutName()) .deprecate(resolvableTypeAccessor.getGraphQLDeprecationReason()) .description(resolvableTypeAccessor.getDescription()) .type((GraphQLOutputType) graphQLObjectType) .build(); addToFieldDefinitionResolverMap(dfsContext, graphQLFieldDefinition, resolvableTypeAccessor.getGraphQLComplexitySpelExpression()); return newObject() .name(resolvableTypeAccessor.getName() + getGraphQLSchemaConfig().getOutputObjectNamePrefix()) .field(newFieldDefinition() .name(getGraphQLSchemaConfig().getClientMutationIdName()) .type(clientMutationIdType) .build()) .field(graphQLFieldDefinition) .build(); }