package com.rayo.core.verb;
import java.util.List;
import javax.validation.Valid;
import javax.validation.constraints.AssertTrue;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import org.hibernate.validator.constraints.NotEmpty;
import org.joda.time.Duration;
import com.rayo.core.validation.Messages;
import com.rayo.core.validation.ValidRecognizer;
public class Ask extends BaseVerb {
private String voice;
@Valid
private Ssml prompt;
private boolean bargein = true;
@Valid
@NotEmpty(message=Messages.MISSING_CHOICES)
private List<Choices> choices;
private InputMode mode = InputMode.ANY;
@ValidRecognizer
private String recognizer;
private float minConfidence = 0.3f;
private Character terminator;
private Duration timeout = new Duration(30000);
public String getVoice() {
return voice;
}
public void setVoice(String voice) {
this.voice = voice;
}
public Ssml getPrompt() {
return prompt;
}
public void setPrompt(Ssml promptItems) {
this.prompt = promptItems;
}
public boolean isBargein() {
return bargein;
}
public void setBargein(boolean bargein) {
this.bargein = bargein;
}
public List<Choices> getChoices() {
return choices;
}
public void setChoices(List<Choices> choicesList) {
this.choices = choicesList;
}
public InputMode getMode() {
return mode;
}
public void setMode(InputMode mode) {
this.mode = mode;
}
public String getRecognizer() {
return recognizer;
}
public void setRecognizer(String recognizer) {
this.recognizer = recognizer;
}
public float getMinConfidence() {
return minConfidence;
}
public void setMinConfidence(float minConfidence) {
this.minConfidence = minConfidence;
}
public Character getTerminator() {
return terminator;
}
public void setTerminator(Character terminator) {
this.terminator = terminator;
}
public Duration getTimeout() {
return timeout;
}
public void setTimeout(Duration timeout) {
this.timeout = timeout;
}
@AssertTrue(message=Messages.INVALID_CONFIDENCE_RANGE)
public boolean isMinConfidenceWithinRange() {
return (minConfidence >= 0f && minConfidence <= 1f);
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE)
.append("callId", getCallId())
.append("verbId", getVerbId())
.append("prompt",prompt)
.append("bargein",bargein)
.append("choices",choices)
.append("mode",mode)
.append("recognizer",recognizer)
.append("minConfidence",minConfidence)
.append("terminator",terminator)
.append("timeout",timeout)
.append("voice",voice)
.toString();
}
}