HEX
Server: LiteSpeed
System: Linux server315.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: globfdxw (6114)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //home/globfdxw/www/wp-content/plugins/give/src/Framework/QueryBuilder/Clauses/JoinCondition.php
<?php

namespace Give\Framework\QueryBuilder\Clauses;

use Give\Framework\QueryBuilder\Types\Operator;
use InvalidArgumentException;

/**
 * @since 2.19.0
 */
class JoinCondition
{
    /**
     * @var string
     */
    public $logicalOperator;

    /**
     * @var string
     */
    public $column1;

    /**
     * @var mixed
     */
    public $column2;

    /**
     * @var bool
     */
    public $quote;


    /**
     * @param  string  $logicalOperator
     * @param  string  $column1
     * @param  string  $column2
     * @param  bool  $quote
     */
    public function __construct($logicalOperator, $column1, $column2, $quote = false)
    {
        $this->logicalOperator = $this->getLogicalOperator($logicalOperator);
        $this->column1         = trim($column1);
        $this->column2         = trim($column2);
        $this->quote           = $quote;
    }

    /**
     * @param  string  $operator
     *
     * @return string
     */
    private function getLogicalOperator($operator)
    {
        $operator = strtoupper($operator);

        $supportedOperators = [
            Operator::ON,
            Operator::_AND,
            Operator::_OR
        ];

        if ( ! in_array($operator, $supportedOperators, true)) {
            throw new InvalidArgumentException(
                sprintf(
                    'Unsupported logical operator %s. Please provide one of the supported operators (%s)',
                    $operator,
                    implode(',', $supportedOperators)
                )
            );
        }

        return $operator;
    }
}