示例#1
0
 /**
  * @param ClassName|null $validatorNamespace
  * @param boolean|null   $useNativeCallable
  */
 public function __construct(ClassName $validatorNamespace = null, $useNativeCallable = null)
 {
     $this->typeCheck = TypeCheck::get(__CLASS__, func_get_args());
     if (null === $validatorNamespace) {
         $validatorNamespace = ClassName::fromAtoms(array('Typhoon'), true);
     }
     if (null === $useNativeCallable) {
         $useNativeCallable = true;
     }
     $this->validatorNamespace = $validatorNamespace;
     $this->useNativeCallable = $useNativeCallable;
 }
 /**
  * @param TyphaxASTGenerator|null $typeGenerator
  * @param TypeRenderer|null       $typeRenderer
  */
 public function __construct(TyphaxASTGenerator $typeGenerator = null, TypeRenderer $typeRenderer = null)
 {
     $this->typeCheck = TypeCheck::get(__CLASS__, func_get_args());
     if (null === $typeGenerator) {
         $typeGenerator = new TyphaxASTGenerator();
     }
     if (null === $typeRenderer) {
         $typeRenderer = new TypeRenderer();
     }
     $this->typeGenerator = $typeGenerator;
     $this->typeRenderer = $typeRenderer;
     $this->argumentExpression = new Variable(new Identifier('argument'));
     $this->indexExpression = new Variable(new Identifier('index'));
     $this->validatorNamespace = ClassName::fromAtoms(array('Typhoon'), true);
 }
示例#3
0
 /**
  * @param array<string|array> &$tokens
  *
  * @return ClassName
  */
 protected function parseClassName(array &$tokens)
 {
     $this->typeCheck->parseClassName(func_get_args());
     do {
         $token = $this->normalizeToken(next($tokens));
     } while (T_WHITESPACE === $token[0]);
     return ClassName::fromAtoms(array($token[1]), false);
 }
 /**
  * @param RuntimeConfiguration $configuration
  * @param ClassDefinition      $classDefinition
  *
  * @return ClassName
  */
 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);
 }