HEX
Server: Apache
System: Linux p3plzcpnl506847.prod.phx3.secureserver.net 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: slfopp7cb1df (5698090)
PHP: 8.1.34
Disabled: NONE
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;
	}
}