HEX
Server: LiteSpeed
System: Linux br-asc-web1845.main-hosting.eu 5.14.0-611.42.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Mar 24 05:30:20 EDT 2026 x86_64
User: u790421558 (790421558)
PHP: 8.2.30
Disabled: system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
Upload Files
File: //proc/self/cwd/wp-content/plugins/elementor/modules/usage/element-usage-calculator-registry.php
<?php

namespace Elementor\Modules\Usage;

use Elementor\Modules\Usage\Contracts\Element_Usage_Calculator;

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

class Element_Usage_Calculator_Registry {

	/** @var Element_Usage_Calculator[] */
	private array $calculators = [];

	private ?Element_Usage_Calculator $fallback = null;

	/**
	 * @param Element_Usage_Calculator[] $calculators
	 */
	public function __construct( array $calculators = [] ) {
		$this->calculators = $calculators;
	}

	public function set_fallback( Element_Usage_Calculator $calculator ): void {
		$this->fallback = $calculator;
	}

	public function get_calculator_for( array $element, $element_instance ): ?Element_Usage_Calculator {
		foreach ( $this->calculators as $calculator ) {
			if ( $calculator->can_calculate( $element, $element_instance ) ) {
				return $calculator;
			}
		}

		return $this->fallback;
	}
}