Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/Search/Query/MetadataConstraint.php
<?php

namespace XF\Search\Query;

use function
count, is_array;

class
MetadataConstraint
{
    protected
$key = '';
    protected
$values = [];
    protected
$matchType = 1;

    const
MATCH_ANY = 1;
    const
MATCH_ALL = 2;
    const
MATCH_NONE = 3;

    public function
__construct($key, $values, $matchType = self::MATCH_ANY)
    {
       
$this->key = $key;
       
$this->setValues($values);
       
$this->setMatchType($matchType);
    }

    public function
getKey()
    {
        return
$this->key;
    }

    public function
setValues($values)
    {
        if (!
is_array($values))
        {
           
$values = [$values];
        }

        if (!
count($values))
        {
            throw new \
LogicException("Must provide at least 1 metadata value");
        }

       
$this->values = $values;
    }

    public function
getValues()
    {
        return
$this->values;
    }

    public function
setMatchType($match)
    {
        switch (
$match)
        {
            case
self::MATCH_ANY:
            case
'any':
               
$this->matchType = self::MATCH_ANY;
                break;

            case
self::MATCH_ALL:
            case
'all':
               
$this->matchType = self::MATCH_ALL;
                break;

            case
self::MATCH_NONE:
            case
'none':
               
$this->matchType = self::MATCH_NONE;
                break;

            default:
                throw new \
LogicException("Invalid match type '$match'");
        }
    }

    public function
getMatchType()
    {
        return
$this->matchType;
    }
}