This file is indexed.

/usr/share/php/ApiGen/Templating/TemplateElementsLoader.php is in php-apigen 4.1.2-1ubuntu2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
<?php

/**
 * This file is part of the ApiGen (http://apigen.org)
 *
 * For the full copyright and license information, please view
 * the file license.md that was distributed with this source code.
 */

namespace ApiGen\Templating;

use ApiGen\Configuration\Configuration;
use ApiGen\Configuration\ConfigurationOptions as CO;
use ApiGen\Parser\Elements\AutocompleteElements;
use ApiGen\Parser\Elements\ElementStorage;
use ApiGen\Reflection\ReflectionElement;
use Closure;


class TemplateElementsLoader
{

	/**
	 * @var ElementStorage
	 */
	private $elementStorage;

	/**
	 * @var Configuration
	 */
	private $configuration;

	/**
	 * @var AutocompleteElements
	 */
	private $autocompleteElements;

	/**
	 * @var array
	 */
	private $parameters;


	public function __construct(
		ElementStorage $elementStorage,
		Configuration $configuration,
		AutocompleteElements $autocompleteElements
	) {
		$this->elementStorage = $elementStorage;
		$this->configuration = $configuration;
		$this->autocompleteElements = $autocompleteElements;
	}


	/**
	 * @return Template
	 */
	public function addElementsToTemplate(Template $template)
	{
		return $template->setParameters($this->getParameters());
	}


	/**
	 * @return Closure
	 */
	private function getMainFilter()
	{
		return function (ReflectionElement $element) {
			return $element->isMain();
		};
	}


	/**
	 * @return array
	 */
	private function getParameters()
	{
		if ($this->parameters === NULL) {
			$parameters = [
				'annotationGroups' => $this->configuration->getOption(CO::ANNOTATION_GROUPS),
				'namespace' => NULL,
				'package' => NULL,
				'class' => NULL,
				'constant' => NULL,
				'function' => NULL,
				'namespaces' => array_keys($this->elementStorage->getNamespaces()),
				'packages' => array_keys($this->elementStorage->getPackages()),
				'classes' => array_filter($this->elementStorage->getClasses(), $this->getMainFilter()),
				'interfaces' => array_filter($this->elementStorage->getInterfaces(), $this->getMainFilter()),
				'traits' => array_filter($this->elementStorage->getTraits(), $this->getMainFilter()),
				'exceptions' => array_filter($this->elementStorage->getExceptions(), $this->getMainFilter()),
				'constants' => array_filter($this->elementStorage->getConstants(), $this->getMainFilter()),
				'functions' => array_filter($this->elementStorage->getFunctions(), $this->getMainFilter()),
				'elements' => $this->autocompleteElements->getElements()
			];

			if ($this->configuration->getOption(CO::DOWNLOAD)) {
				$parameters['archive'] = basename($this->configuration->getZipFileName());
			}

			$this->parameters = $parameters;
		}
		return $this->parameters;
	}

}