jfxtras.icalendarfx.properties.component.alarm.Action Maven / Gradle / Ivy
package jfxtras.icalendarfx.properties.component.alarm;
import jfxtras.icalendarfx.components.VAlarm;
import jfxtras.icalendarfx.properties.VPropertyBase;
import jfxtras.icalendarfx.properties.component.alarm.Action.ActionType;
import jfxtras.icalendarfx.utilities.StringConverter;
/**
* ACTION
* RFC 5545, 3.8.6.1, page 132
*
* This property defines the action to be invoked when an alarm is triggered.
*
* actionvalue = "AUDIO" / "DISPLAY" / "EMAIL" / iana-token / x-name
*
* Applications MUST ignore alarms with x-name and iana-token values they don't recognize.
*
* Examples:
*
* - ACTION:AUDIO
*
- ACTION:DISPLAY
*
*
*
* @author David Bal
*
* @see VAlarm
*/
public class Action extends VPropertyBase
{
// private static final Collection ALLOWED_VALUE_TYPES = Arrays.asList(ValueType.TEXT);
// private static final ValueType DEFAULT_VALUE_TYPE = ValueType.TEXT;
private final static StringConverter CONVERTER = new StringConverter()
{
@Override
public String toString(ActionType object)
{
// null means value is unknown and non-converted string in PropertyBase unknownValue should be used instead
return (object == ActionType.UNKNOWN) ? null: object.toString();
}
@Override
public ActionType fromString(String string)
{
return ActionType.valueOf2(string.toUpperCase());
}
};
public Action(ActionType type)
{
// super(ALLOWED_VALUE_TYPES, DEFAULT_VALUE_TYPE);
super();
setConverter(CONVERTER);
setValue(type);
}
public Action(Action source)
{
super(source);
}
public Action()
{
// super(ALLOWED_VALUE_TYPES, DEFAULT_VALUE_TYPE);
super();
setConverter(CONVERTER);
}
public static Action parse(String content)
{
return Action.parse(new Action(), content);
}
public enum ActionType
{
AUDIO,
DISPLAY,
EMAIL,
UNKNOWN; // must ignore
static ActionType valueOf2(String value)
{
try
{
return valueOf(value);
} catch (IllegalArgumentException e)
{
return UNKNOWN;
}
}
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy