protected function validatorClassName(
        RuntimeConfiguration $configuration,
        ClassDefinition $classDefinition
    ) {
        $this->typeCheck->validatorClassName(func_get_args());

        $classNameAtoms = $configuration->validatorNamespace()->atoms();
        $classNameAtoms[] = 'Validator';
        if ($classDefinition->className()->hasParent()) {
            $classNameAtoms = array_merge(
                $classNameAtoms,
                $classDefinition->className()->parent()->atoms()
            );
        }

        $classNameAtoms[] = sprintf(
            '%sTypeCheck',
            $classDefinition->className()->shortName()->string()
        );

        return ClassName::fromAtoms($classNameAtoms, true);
    }
protected function validatorClassName(
        RuntimeConfiguration $configuration,
        ClassDefinition $classDefinition
    ) {
        $this->typeCheck->validatorClassName(func_get_args());

        $classNameAtoms = $configuration->validatorNamespace()->atoms();
        $classNameAtoms[] = 'Validator';
        if ($classDefinition->className()->hasParent()) {
            $classNameAtoms = array_merge(
                $classNameAtoms,
                $classDefinition->className()->parent()->atoms()
            );
        }

        $classNameAtoms[] = sprintf(
            '%sTypeCheck',
            $classDefinition->className()->shortName()->string()
        );

        return ClassName::fromAtoms($classNameAtoms, true);
    }
@param RuntimeConfiguration $configuration
@param ClassDefinition      $classDefinition

@return ClassName