package com.rayo.core.verb; import java.net.URI; import javax.validation.constraints.AssertTrue; import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.commons.lang.builder.ToStringStyle; import com.rayo.core.validation.Messages; public class Choices { private URI uri; private String content; private String contentType; public static final String VOXEO_GRAMMAR = "application/grammar+voxeo"; public static final String GRXML_GRAMMAR = "application/grammar+grxml"; public Choices() {} public Choices(URI uri) { this.uri = uri; } public Choices(String contentType, String content) { this.contentType = contentType; this.content = content; } public URI getUri() { return uri; } public void setUri(URI uri) { this.uri = uri; } public String getContentType() { return contentType; } public void setContentType(String contentType) { this.contentType = contentType; } public String getContent() { return content; } public void setContent(String text) { this.content = text; } @AssertTrue(message=Messages.MISSING_CHOICES_CONTENT_TYPE) public boolean isContentsTypeSpecifiedWithInlineContents() { return (content == null) || (content != null && contentType != null); } @AssertTrue(message=Messages.MISSING_CHOICES_CONTENT_OR_URL) public boolean isContentsOrUrlSpecified() { return (content != null && uri==null) || (uri != null && content == null); } @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE) .append("uri",uri) .append("contentType",contentType) .append("content",content) .toString(); } }