Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
/**
3
 * Mockery
4
 *
5
 * LICENSE
6
 *
7
 * This source file is subject to the new BSD license that is bundled
8
 * with this package in the file LICENSE.txt.
9
 * It is also available through the world-wide-web at this URL:
10
 * http://github.com/padraic/mockery/blob/master/LICENSE
11
 * If you did not receive a copy of the license and are unable to
12
 * obtain it through the world-wide-web, please send an email
13
 * to padraic@php.net so we can send you a copy immediately.
14
 *
15
 * @category   Mockery
16
 * @package    Mockery
17
 * @copyright  Copyright (c) 2010 Pádraic Brady (http://blog.astrumfutura.com)
18
 * @license    http://github.com/padraic/mockery/blob/master/LICENSE New BSD License
19
 */
20
 
21
namespace Mockery\Generator;
22
 
23
class DefinedTargetClass implements TargetClassInterface
24
{
25
    private $rfc;
26
    private $name;
27
 
28
    public function __construct(\ReflectionClass $rfc, $alias = null)
29
    {
30
        $this->rfc = $rfc;
31
        $this->name = $alias === null ? $rfc->getName() : $alias;
32
    }
33
 
34
    public static function factory($name, $alias = null)
35
    {
36
        return new self(new \ReflectionClass($name), $alias);
37
    }
38
 
39
    public function getName()
40
    {
41
        return $this->name;
42
    }
43
 
44
    public function isAbstract()
45
    {
46
        return $this->rfc->isAbstract();
47
    }
48
 
49
    public function isFinal()
50
    {
51
        return $this->rfc->isFinal();
52
    }
53
 
54
    public function getMethods()
55
    {
56
        return array_map(function ($method) {
57
            return new Method($method);
58
        }, $this->rfc->getMethods());
59
    }
60
 
61
    public function getInterfaces()
62
    {
63
        $class = __CLASS__;
64
        return array_map(function ($interface) use ($class) {
65
            return new $class($interface);
66
        }, $this->rfc->getInterfaces());
67
    }
68
 
69
    public function __toString()
70
    {
71
        return $this->getName();
72
    }
73
 
74
    public function getNamespaceName()
75
    {
76
        return $this->rfc->getNamespaceName();
77
    }
78
 
79
    public function inNamespace()
80
    {
81
        return $this->rfc->inNamespace();
82
    }
83
 
84
    public function getShortName()
85
    {
86
        return $this->rfc->getShortName();
87
    }
88
 
89
    public function implementsInterface($interface)
90
    {
91
        return $this->rfc->implementsInterface($interface);
92
    }
93
 
94
    public function hasInternalAncestor()
95
    {
96
        if ($this->rfc->isInternal()) {
97
            return true;
98
        }
99
 
100
        $child = $this->rfc;
101
        while ($parent = $child->getParentClass()) {
102
            if ($parent->isInternal()) {
103
                return true;
104
            }
105
            $child = $parent;
106
        }
107
 
108
        return false;
109
    }
110
}