private function _extractComparisonTypeAndValue($val)
    {
        $validComparisons = [
            self::COMPARISON_TYPE_GREATERTHAN_EQUAL,
            self::COMPARISON_TYPE_LESSTHAN_EQUAL,
            self::COMPARISON_TYPE_NOT_EQUAL,
            self::COMPARISON_TYPE_GREATERTHAN,
            self::COMPARISON_TYPE_LESSTHAN,
            self::METHOD_LOGIC_TYPE_EQUAL
        ];
        $comparison = substr($val, 0, 2);
        switch ($comparison) {
            case self::COMPARISON_TYPE_GREATERTHAN_EQUAL:
                $type = self::METHOD_LOGIC_TYPE_GREATERTHAN_EQUAL;
                break;
            case self::COMPARISON_TYPE_LESSTHAN_EQUAL:
                $type = self::METHOD_LOGIC_TYPE_LESSTHAN_EQUAL;
                break;
            case self::COMPARISON_TYPE_NOT_EQUAL:
                $type = self::METHOD_LOGIC_TYPE_NOT_EQUAL;
                break;
        }
        if (empty($type)) {
            $comparison = substr($val, 0, 1);
            switch ($comparison) {
                case self::COMPARISON_TYPE_GREATERTHAN:
                    $type = self::METHOD_LOGIC_TYPE_GREATERTHAN;
                    break;
                case self::COMPARISON_TYPE_LESSTHAN:
                    $type = self::METHOD_LOGIC_TYPE_LESSTHAN;
                    break;
                default:
                    $type = self::METHOD_LOGIC_TYPE_EQUAL;
            }
        }

        return (object) [
            'type' => $type,
            'value' => (is_string($val) && in_array($comparison, $validComparisons))
                ? str_replace($comparison, '', $val)
                : $val
        ];
    }