package jfxtras.icalendarfx.parameters; import java.util.Collections; import java.util.List; import jfxtras.icalendarfx.parameters.ParameterEnumBasedWithUnknown; import jfxtras.icalendarfx.parameters.VParameterBase; import jfxtras.icalendarfx.utilities.StringConverter; public abstract class ParameterEnumBasedWithUnknown<U,T> extends VParameterBase<U,T> { private String nonStandardValue; // contains exact string for unknown value /* * CONSTRUCTORS */ public ParameterEnumBasedWithUnknown(StringConverter<T> stringConverter) { super(stringConverter); } public ParameterEnumBasedWithUnknown(T value, StringConverter<T> stringConverter) { this(stringConverter); setValue(value); } public ParameterEnumBasedWithUnknown(ParameterEnumBasedWithUnknown<U,T> source, StringConverter<T> stringConverter) { super(source, stringConverter); nonStandardValue = source.nonStandardValue; } @Override String valueAsString() { return (getValue().toString().equals("UNKNOWN")) ? nonStandardValue : super.valueAsString(); } @Override protected List<Message> parseContent(String content) { super.parseContent(content); if (getValue().toString().equals("UNKNOWN")) { String valueString = VParameterBase.extractValue(content); nonStandardValue = valueString; } return Collections.EMPTY_LIST; } }