package com.vaguehope.onosendai.config;
import java.util.Locale;
import com.vaguehope.onosendai.util.Titleable;
public enum InlineMediaStyle implements Titleable {
/**
* Synonym for null.
*/
NONE("none", "-"), //ES
INLINE("inline", "Inline"), //ES
SEAMLESS("seamless", "Seamless"); //ES
private final String uiTitle;
private final String serial;
private InlineMediaStyle (final String serial, final String uiTitle) {
this.serial = serial;
this.uiTitle = uiTitle;
}
@Override
public String getUiTitle () {
return this.uiTitle;
}
@Override
public String toString () {
return getUiTitle();
}
public String serialise () {
return this.serial;
}
public static InlineMediaStyle parseJson (final Object obj) {
if (obj == null) return NONE;
if (obj instanceof String) return parseJson((String) obj);
if (obj instanceof Boolean) return ((Boolean) obj).booleanValue() ? INLINE : NONE;
throw new IllegalArgumentException("Unexpected object type " + obj.getClass() + ": " + obj);
}
public static InlineMediaStyle parseJson (final String serial) {
if (serial == null) return null;
final String lowerSerial = serial.toLowerCase(Locale.ENGLISH);
for (final InlineMediaStyle ims : values()) {
if (lowerSerial.equals(ims.serial)) return ims;
}
throw new IllegalArgumentException("Unknown inline media style: '" + serial + "'.");
}
}