Code Duplication    Length = 10-10 lines in 3 locations

src/Persister.php 3 locations

@@ 182-191 (lines=10) @@
179
        $changeset = $model->getChangeSet();
180
181
        $update = [];
182
        foreach ($changeset['attributes'] as $key => $values) {
183
            if (null === $values['new']) {
184
                $op = '$unset';
185
                $value = 1;
186
            } else {
187
                $op = '$set';
188
                $value = $this->getFormatter()->getAttributeDbValue($metadata->getAttribute($key), $values['new']);
189
            }
190
            $update[$op][$key] = $value;
191
        }
192
193
        // @todo Must prevent inverse relationships from persisting
194
        foreach ($changeset['hasOne'] as $key => $values) {
@@ 194-203 (lines=10) @@
191
        }
192
193
        // @todo Must prevent inverse relationships from persisting
194
        foreach ($changeset['hasOne'] as $key => $values) {
195
            if (null === $values['new']) {
196
                $op = '$unset';
197
                $value = 1;
198
            } else {
199
                $op = '$set';
200
                $value = $this->getFormatter()->getHasOneDbValue($metadata->getRelationship($key), $values['new']);
201
            }
202
            $update[$op][$key] = $value;
203
        }
204
205
        foreach ($changeset['hasMany'] as $key => $values) {
206
            if (null === $values['new']) {
@@ 205-214 (lines=10) @@
202
            $update[$op][$key] = $value;
203
        }
204
205
        foreach ($changeset['hasMany'] as $key => $values) {
206
            if (null === $values['new']) {
207
                $op = '$unset';
208
                $value = 1;
209
            } else {
210
                $op = '$set';
211
                $value = $this->getFormatter()->getHasManyDbValue($metadata->getRelationship($key), $values['new']);
212
            }
213
            $update[$op][$key] = $value;
214
        }
215
216
        if (empty($update)) {
217
            return $model;