package com.rayo.core.verb;
import java.net.URI;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import org.hibernate.validator.constraints.NotEmpty;
import com.rayo.core.validation.Messages;
import com.voxeo.utils.Networks;
public class Ssml {
@NotEmpty(message=Messages.MISSING_SSML)
private String ssml;
private String voice;
public Ssml(String ssml) {
this.ssml = ssml;
}
public String getText() {
return ssml;
}
public void setText(String text) {
this.ssml = text;
}
public void setVoice(String voice) {
this.voice = voice;
}
public String getVoice() {
return voice;
}
public URI toUri() {
String uriText = ssml.trim();
if (ssml.startsWith("<speak")) {
return URI.create("data:" + Networks.urlEncode("application/ssml+xml," + uriText));
} else {
return URI.create("data:" + Networks.urlEncode("application/ssml+xml,<speak>" + uriText + "</speak>"));
}
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE)
.append("ssml",ssml)
.append("voice",getVoice())
.append("uri",toUri())
.toString();
}
}