/** * @param AbstractType $type * @param array $mapping */ private function populateType(AbstractType $type, array $mapping) { if (isset($mapping['description'])) { $type->setDescription($mapping['description']); } }
/** * @param Field[] $fields * @param AbstractType|FieldContainer[]|Field $parent */ private function prepareFields(array $fields, AbstractType $parent) { foreach ($fields as $field) { if (null !== $field->getArguments()) { $this->prepareFields($field->getArguments(), $field); } $this->prepareResolver($field); $typeName = $field->getType(); if (empty($typeName)) { throw new \InvalidArgumentException(sprintf('Missing type for field "%s" in "%s"', $field->getName(), $parent->getName())); } $field->setResolvedType(function () use($typeName) { return $this->typeResolver->resolveType($typeName); }); } }
/** * {@inheritdoc} */ public function toMapping() { $mapping = ['type' => $this->resolvedType, 'resolve' => $this->resolve, 'resolve_config' => $this->resolveConfig] + parent::toMapping(); if (!empty($this->arguments)) { $mapping['args'] = []; foreach ($this->arguments as $argument) { $mapping['args'][$argument->getName()] = $argument->toMapping(); } } return $mapping; }
/** * @param AbstractType|Type|Field $item * @param array $guesses */ private function applyBestGuess(AbstractType $item, array $guesses) { /** @var ResolveConfigGuess $best */ $best = $this->getBestGuess($guesses); if (null !== $best) { $item->mergeResolveConfig($best->getConfig()); } }