Code Duplication    Length = 10-13 lines in 3 locations

lib/Doctrine/ODM/MongoDB/Query/Expr.php 3 locations

@@ 170-179 (lines=10) @@
167
     * @param mixed|Expr $valueOrExpression
168
     * @return $this
169
     */
170
    public function addToSet($valueOrExpression)
171
    {
172
        if ($valueOrExpression instanceof Expr) {
173
            $valueOrExpression = $valueOrExpression->getQuery();
174
        }
175
176
        $this->requiresCurrentField();
177
        $this->newObj['$addToSet'][$this->currentField] = $valueOrExpression;
178
        return $this;
179
    }
180
181
    /**
182
     * Specify $all criteria for the current field.
@@ 1011-1020 (lines=10) @@
1008
     * @param mixed|Expr $valueOrExpression
1009
     * @return $this
1010
     */
1011
    public function pull($valueOrExpression)
1012
    {
1013
        if ($valueOrExpression instanceof Expr) {
1014
            $valueOrExpression = $valueOrExpression->getQuery();
1015
        }
1016
1017
        $this->requiresCurrentField();
1018
        $this->newObj['$pull'][$this->currentField] = $valueOrExpression;
1019
        return $this;
1020
    }
1021
1022
    /**
1023
     * Remove all elements matching any of the given values from the current
@@ 1057-1069 (lines=13) @@
1054
     * @param mixed|Expr $valueOrExpression
1055
     * @return $this
1056
     */
1057
    public function push($valueOrExpression)
1058
    {
1059
        if ($valueOrExpression instanceof Expr) {
1060
            $valueOrExpression = array_merge(
1061
                ['$each' => []],
1062
                $valueOrExpression->getQuery()
1063
            );
1064
        }
1065
1066
        $this->requiresCurrentField();
1067
        $this->newObj['$push'][$this->currentField] = $valueOrExpression;
1068
        return $this;
1069
    }
1070
1071
    /**
1072
     * Specify $gte and $lt criteria for the current field.