PHPUnit_Util_Test::resolveElementToReflectionObjects PHP Method

resolveElementToReflectionObjects() private static method

private static resolveElementToReflectionObjects ( string $element ) : array
$element string
return array
    private static function resolveElementToReflectionObjects($element)
    {
        $codeToCoverList = [];
        if (strpos($element, '\\') !== false && function_exists($element)) {
            $codeToCoverList[] = new ReflectionFunction($element);
        } elseif (strpos($element, '::') !== false) {
            list($className, $methodName) = explode('::', $element);
            if (isset($methodName[0]) && $methodName[0] == '<') {
                $classes = [$className];
                foreach ($classes as $className) {
                    if (!class_exists($className) && !interface_exists($className) && !trait_exists($className)) {
                        throw new PHPUnit_Framework_InvalidCoversTargetException(sprintf('Trying to @cover or @use not existing class or ' . 'interface "%s".', $className));
                    }
                    $class = new ReflectionClass($className);
                    $methods = $class->getMethods();
                    $inverse = isset($methodName[1]) && $methodName[1] == '!';
                    if (strpos($methodName, 'protected')) {
                        $visibility = 'isProtected';
                    } elseif (strpos($methodName, 'private')) {
                        $visibility = 'isPrivate';
                    } elseif (strpos($methodName, 'public')) {
                        $visibility = 'isPublic';
                    }
                    foreach ($methods as $method) {
                        if ($inverse && !$method->{$visibility}()) {
                            $codeToCoverList[] = $method;
                        } elseif (!$inverse && $method->{$visibility}()) {
                            $codeToCoverList[] = $method;
                        }
                    }
                }
            } else {
                $classes = [$className];
                foreach ($classes as $className) {
                    if ($className == '' && function_exists($methodName)) {
                        $codeToCoverList[] = new ReflectionFunction($methodName);
                    } else {
                        if (!((class_exists($className) || interface_exists($className) || trait_exists($className)) && method_exists($className, $methodName))) {
                            throw new PHPUnit_Framework_InvalidCoversTargetException(sprintf('Trying to @cover or @use not existing method "%s::%s".', $className, $methodName));
                        }
                        $codeToCoverList[] = new ReflectionMethod($className, $methodName);
                    }
                }
            }
        } else {
            $extended = false;
            if (strpos($element, '<extended>') !== false) {
                $element = str_replace('<extended>', '', $element);
                $extended = true;
            }
            $classes = [$element];
            if ($extended) {
                $classes = array_merge($classes, class_implements($element), class_parents($element));
            }
            foreach ($classes as $className) {
                if (!class_exists($className) && !interface_exists($className) && !trait_exists($className)) {
                    throw new PHPUnit_Framework_InvalidCoversTargetException(sprintf('Trying to @cover or @use not existing class or ' . 'interface "%s".', $className));
                }
                $codeToCoverList[] = new ReflectionClass($className);
            }
        }
        return $codeToCoverList;
    }