Code Duplication    Length = 10-10 lines in 3 locations

src/Persister.php 3 locations

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