Pinq\Queries\Common\Join\Options::update PHP Method

update() public method

public update ( Pinq\Queries\Common\ISource $source, boolean $isGroupJoin, Pinq\Queries\Common\Join\IFilter $filter = null, boolean $hasDefault = false ) : Options
$source Pinq\Queries\Common\ISource
$isGroupJoin boolean
$filter Pinq\Queries\Common\Join\IFilter
$hasDefault boolean
return Options
    public function update(Common\ISource $source, $isGroupJoin, IFilter $filter = null, $hasDefault = false)
    {
        if ($this->source === $source && $this->isGroupJoin === $isGroupJoin && $this->filter === $filter && $this->hasDefault === $hasDefault) {
            return $this;
        }
        return new self($source, $isGroupJoin, $filter, $hasDefault, $this->defaultValueId, $this->defaultKeyId);
    }

Usage Example

示例#1
0
 public function updateJoinOptions(Queries\Common\Join\Options $options)
 {
     $filter = $options->getFilter();
     if ($filter instanceof Queries\Common\Join\Filter\Custom) {
         $filter = $filter->update($this->expressionProcessor->processFunction($filter->getOnFunction()));
     } elseif ($filter instanceof Queries\Common\Join\Filter\Equality) {
         $filter = $filter->update($this->expressionProcessor->processFunction($filter->getOuterKeyFunction()), $this->expressionProcessor->processFunction($filter->getInnerKeyFunction()));
     }
     return $options->update($options->getSource(), $options->isGroupJoin(), $filter, $options->hasDefault());
 }