refactor: add VisualAsset.shallowCopy() to eliminate 9-field manual entity copy in previewTransform

This commit is contained in:
2026-04-23 11:16:44 +02:00
parent 4b5cb6023c
commit 41ba1e242e
2 changed files with 24 additions and 11 deletions
@@ -64,6 +64,29 @@ public class VisualAsset {
} }
} }
/**
* Returns a detached, unmanaged copy of this entity suitable for preview/simulation use.
* The copy shares the same field values but is not associated with any JPA persistence context.
*/
public VisualAsset shallowCopy() {
VisualAsset copy = new VisualAsset();
copy.id = this.id;
copy.name = this.name;
copy.preview = this.preview;
copy.x = this.x;
copy.y = this.y;
copy.width = this.width;
copy.height = this.height;
copy.rotation = this.rotation;
copy.speed = this.speed;
copy.muted = this.muted;
copy.mediaType = this.mediaType;
copy.originalMediaType = this.originalMediaType;
copy.audioVolume = this.audioVolume;
copy.hidden = this.hidden;
return copy;
}
public String getId() { public String getId() {
return id; return id;
} }
@@ -839,17 +839,7 @@ public class ChannelDirectoryService {
visual.getAudioVolume() visual.getAudioVolume()
); );
VisualAsset previewState = new VisualAsset(); VisualAsset previewState = visual.shallowCopy();
previewState.setId(visual.getId());
previewState.setName(visual.getName());
previewState.setX(visual.getX());
previewState.setY(visual.getY());
previewState.setWidth(visual.getWidth());
previewState.setHeight(visual.getHeight());
previewState.setRotation(visual.getRotation());
previewState.setSpeed(visual.getSpeed());
previewState.setMuted(visual.isMuted());
previewState.setAudioVolume(visual.getAudioVolume());
if (previewRequest.getX() != null) { if (previewRequest.getX() != null) {
previewState.setX(previewRequest.getX()); previewState.setX(previewRequest.getX());