public function addChild($child)
    {
        if (!\is_array($child)) {
            throw new \RuntimeException('Error Processing sub filter: ' . var_export($child, true), 1);
        }

        switch (strtoupper($child['operation'])) {
            case '=':
            case '>':
            case '<':
                return $this->getFilterForComparingOperator($child);

            case 'IN':
                return $this->getFilterForInList($child);

            case 'LIKE':
                return $this->getFilterForLike($child);

            default:
        }

        throw new \RuntimeException('Error processing filter array ' . var_export($child, true), 1);
    }