PHP Classes

File: vendor/hamcrest/hamcrest-php/generator/FactoryParameter.php

Recommend this page to a friend!
  Classes of Renato Lucena   PHP Pokemon Script   vendor/hamcrest/hamcrest-php/generator/FactoryParameter.php   Download  
File: vendor/hamcrest/hamcrest-php/generator/FactoryParameter.php
Role: Class source
Content type: text/plain
Description: Class source
Class: PHP Pokemon Script
Provides an API to manage a database of Pokemons
Author: By
Last change:
Date: 6 years ago
Size: 1,775 bytes
 

Contents

Class file image Download
<?php

/*
 Copyright (c) 2009 hamcrest.org
 */

class FactoryParameter
{
   
/**
     * @var FactoryMethod
     */
   
private $method;

   
/**
     * @var ReflectionParameter
     */
   
private $reflector;

    public function
__construct(FactoryMethod $method, ReflectionParameter $reflector)
    {
       
$this->method = $method;
       
$this->reflector = $reflector;
    }

    public function
getDeclaration()
    {
        if (
$this->reflector->isArray()) {
           
$code = 'array ';
        } else {
           
$class = $this->reflector->getClass();
            if (
$class !== null) {
               
$code = '\\' . $class->name . ' ';
            } else {
               
$code = '';
            }
        }
       
$code .= '$' . $this->reflector->name;
        if (
$this->reflector->isOptional()) {
           
$default = $this->reflector->getDefaultValue();
            if (
is_null($default)) {
               
$default = 'null';
            } elseif (
is_bool($default)) {
               
$default = $default ? 'true' : 'false';
            } elseif (
is_string($default)) {
               
$default = "'" . $default . "'";
            } elseif (
is_numeric($default)) {
               
$default = strval($default);
            } elseif (
is_array($default)) {
               
$default = 'array()';
            } else {
                echo
'Warning: unknown default type for ' . $this->getMethod()->getFullName() . PHP_EOL;
               
var_dump($default);
               
$default = 'null';
            }
           
$code .= ' = ' . $default;
        }
        return
$code;
    }

    public function
getInvocation()
    {
        return
'$' . $this->reflector->name;
    }

    public function
getMethod()
    {
        return
$this->method;
    }
}