bramp / bramp/ffmpeg-cli-wrapper

Make probe result objects more immutable

Aperta
#384 5 commenti 0 reazioni 0 assegnatari Vedi su GitHub
enhancement
Lingua principale
Java
Stelle
1.9k
Fork
424
Merge medio
5h 35m
PR unite (30g)
2

Descrizione

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

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Inizia individuando le classi dei risultati della probe, tra cui FFmpegProbeResult, FFmpegStream e FFmpegFormat, e controlla i loro campi pubblici e i getter delle collection. Verifica il percorso di deserializzazione di Gson e il lavoro nelle dipendenze #382 e #383. Il lavoro è completato quando gli oggetti risultato impediscono la mutazione delle collection e usano campi final dove possibile, senza compromettere la deserializzazione di Gson.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java
Ambito
tooling
Tipo di issue
Refactoring
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.