bramp / bramp/ffmpeg-cli-wrapper
Make probe result objects more immutable
- 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