package ch.retorte.intervalmusiccompositor.ui.utils;
import ch.retorte.intervalmusiccompositor.spi.encoder.AudioFileEncoder;
import javafx.util.StringConverter;
import java.util.Collection;
public class AudioFileEncoderConverter extends StringConverter<AudioFileEncoder> {
private final Collection<AudioFileEncoder> encoders;
public AudioFileEncoderConverter(Collection<AudioFileEncoder> encoders) {
this.encoders = encoders;
}
@Override
public String toString(AudioFileEncoder audioFileEncoder) {
return audioFileEncoder.getIdentificator();
}
@Override
public AudioFileEncoder fromString(String identifier) {
return findEncoderFor(identifier);
}
private AudioFileEncoder findEncoderFor(String identifier) {
for (AudioFileEncoder e : encoders) {
if (e.getIdentificator().equalsIgnoreCase(identifier)) {
return e;
}
}
throw new IllegalStateException("Identifier " + identifier + " not matches any encoder.");
}
}