Code Duplication    Length = 18-19 lines in 2 locations

src/Models/Collections/AbstractCollection.php 2 locations

@@ 257-274 (lines=18) @@
254
     * @param   AbstractModel   $model  The model to push.
255
     * @return  self
256
     */
257
    public function push(AbstractModel $model)
258
    {
259
        $this->validateAdd($model);
260
        if (true === $this->willAdd($model)) {
261
            return $this;
262
        }
263
        if (true === $this->willRemove($model)) {
264
            $this->evict('removed', $model);
265
            $this->set('models', $model);
266
            return $this;
267
        }
268
        if (true === $this->hasOriginal($model)) {
269
            return $this;
270
        }
271
        $this->set('added', $model);
272
        $this->set('models', $model);
273
        return $this;
274
    }
275
276
    /**
277
     * Removes a model from the collection.
@@ 282-300 (lines=19) @@
279
     * @param   AbstractModel   $model  The model to remove.
280
     * @return  self
281
     */
282
    public function remove(AbstractModel $model)
283
    {
284
        $this->validateAdd($model);
285
        if (true === $this->willRemove($model)) {
286
            return $this;
287
        }
288
289
        if (true === $this->willAdd($model)) {
290
            $this->evict('added', $model);
291
            $this->evict('models', $model);
292
            return $this;
293
        }
294
295
        if (true === $this->hasOriginal($model)) {
296
            $this->evict('models', $model);
297
            $this->set('removed', $model);
298
        }
299
        return $this;
300
    }
301
302
    /**
303
     * {@inheritDoc}