package com.voxeo.tropo.actions;
import static com.voxeo.tropo.Key.VALUE;
import com.voxeo.tropo.Key;
import com.voxeo.tropo.TropoException;
import com.voxeo.tropo.annotations.RequiredKeys;
import com.voxeo.tropo.annotations.ValidKeys;
import com.voxeo.tropo.enums.Voice;
import support.ActionSupportHandler;
@ValidKeys(keys={"next","event","say","post"})
@RequiredKeys(keys={"event","say"})
public class OnAction extends JsonAction {
private ActionSupportHandler<SayAction> sayActionSupportHandler = new ActionSupportHandler<SayAction>(SayAction.class);
public OnAction() {
super();
setName("on");
}
public OnAction(Key... keys) {
super(keys);
setName("on");
}
public SayAction say(String text) {
return say(VALUE(text));
}
public SayAction say(Key... keys) {
return sayActionSupportHandler.build(this, keys);
}
public static class Say {
private String value;
private Voice voice;
public Say(String value) {
this(value, null);
}
public Say(String value, Voice voice) {
if (value == null || value.trim().equals("")) {
throw new TropoException("Missing required property: value of on.say");
}
this.value = value;
this.voice = voice;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public Voice getVoice() {
return voice;
}
public void setVoice(Voice voice) {
this.voice = voice;
}
}
}