bramp / bramp/ffmpeg-cli-wrapper

Make probe result objects more immutable

Offen
#384 5 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
enhancement
Vorherrschende Sprache
Java
Sterne
1.9k
Forks
424
Ø Merge
5 Std. 35 Min.
Gemergte PRs (30 T.)
2

Beschreibung

Probe result objects (`FFmpegProbeResult`, `FFmpegStream`, `FFmpegFormat`, etc.) are currently mutable — fields are public and collections (e.g., streams list, tags map) are modifiable after construction.

We should make these objects more immutable to prevent accidental modification and improve thread safety.

This is part of the API modernization discussed in #316.

**Scope:**
- Return unmodifiable collections from getter methods (e.g., `Collections.unmodifiableList()` for streams)
- Consider making fields final where possible
- Ensure Gson deserialization still works (may need custom deserializers or builder pattern)

Depends on: #382, #383
Related: #316

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Beginne damit, die Probe-Ergebnis-Klassen zu lokalisieren, einschließlich FFmpegProbeResult, FFmpegStream und FFmpegFormat, und untersuche ihre öffentlichen Felder und Collection-Getter. Prüfe den Gson-Deserialisierungspfad sowie die Arbeiten in den Abhängigkeiten #382 und #383. Als erledigt gilt die Aufgabe, wenn Ergebnisobjekte die Mutation von Collections verhindern und, soweit möglich, final-Felder verwenden, ohne die Gson-Deserialisierung zu beeinträchtigen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
tooling
Issue-Typ
Refactoring
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.