/** * Returns the configured options resolver used for this type. * * @return OptionsResolver The options resolver */ public function getOptionsResolver() : OptionsResolver { if (null === $this->optionsResolver) { if (null !== $this->parent) { $this->optionsResolver = clone $this->parent->getOptionsResolver(); } else { $this->optionsResolver = new OptionsResolver(); } $this->innerType->configureOptions($this->optionsResolver); foreach ($this->typeExtensions as $extension) { $extension->configureOptions($this->optionsResolver); } } return $this->optionsResolver; }
private function resolveType(ColumnTypeInterface $type) : ResolvedColumnTypeInterface { $parentType = $type->getParent(); $fqcn = get_class($type); $typeExtensions = []; foreach ($this->extensions as $extension) { $typeExtensions = array_merge($typeExtensions, $extension->getTypeExtensions($fqcn)); } return $this->resolvedTypeFactory->createResolvedType($type, $typeExtensions, $parentType ? $this->getType($parentType) : null); }