typeParser->parse($signature); if ($type instanceof UnresolvableType) { throw new InvalidMappingTypeSignature($type); } try { $node = $this->nodeBuilder->build($source, $type); } catch (MappingLogicalException $exception) { throw new TypeErrorDuringMapping($type, $exception); } if (! $node->isValid()) { throw new TypeTreeMapperError($source, $type->toString(), $node->messages()); } return $node->value(); } }