Piwik\Segment::getExpressionsWithUnionsResolved PHP Method

getExpressionsWithUnionsResolved() private method

private getExpressionsWithUnionsResolved ( $expressions )
    private function getExpressionsWithUnionsResolved($expressions)
    {
        $expressionsWithUnions = array();
        foreach ($expressions as $expression) {
            $operand = $expression[SegmentExpression::INDEX_OPERAND];
            $name = $operand[SegmentExpression::INDEX_OPERAND_NAME];
            $availableSegment = $this->getSegmentByName($name);
            if (!empty($availableSegment['unionOfSegments'])) {
                $count = 0;
                foreach ($availableSegment['unionOfSegments'] as $segmentNameOfUnion) {
                    $count++;
                    $operator = SegmentExpression::BOOL_OPERATOR_OR;
                    // we connect all segments within that union via OR
                    if ($count === count($availableSegment['unionOfSegments'])) {
                        $operator = $expression[SegmentExpression::INDEX_BOOL_OPERATOR];
                    }
                    $operand[SegmentExpression::INDEX_OPERAND_NAME] = $segmentNameOfUnion;
                    $expressionsWithUnions[] = array(SegmentExpression::INDEX_BOOL_OPERATOR => $operator, SegmentExpression::INDEX_OPERAND => $operand);
                }
            } else {
                $expressionsWithUnions[] = array(SegmentExpression::INDEX_BOOL_OPERATOR => $expression[SegmentExpression::INDEX_BOOL_OPERATOR], SegmentExpression::INDEX_OPERAND => $operand);
            }
        }
        return $expressionsWithUnions;
    }