001package com.plivo.api.xml; 002 003import com.plivo.api.exceptions.PlivoValidationException; 004import com.plivo.api.validators.Validate; 005 006import java.util.ArrayList; 007import java.util.Arrays; 008import java.util.List; 009import javax.xml.bind.annotation.XmlElement; 010import javax.xml.bind.annotation.XmlElements; 011import javax.xml.bind.annotation.XmlRootElement; 012 013@XmlRootElement(name = "Response") 014public class Response extends PlivoXml { 015 016 @XmlElements({ 017 @XmlElement(name = "Wait", type = Wait.class), 018 @XmlElement(name = "Dial", type = Dial.class), 019 @XmlElement(name = "Conference", type = Conference.class), 020 @XmlElement(name = "MultiPartyCall", type = MultiPartyCall.class), 021 @XmlElement(name = "Message", type = Message.class), 022 @XmlElement(name = "Play", type = Play.class), 023 @XmlElement(name = "Speak", type = Speak.class), 024 @XmlElement(name = "DTMF", type = Dtmf.class), 025 @XmlElement(name = "PreAnswer", type = PreAnswer.class), 026 @XmlElement(name = "Hangup", type = Hangup.class), 027 @XmlElement(name = "Redirect", type = Redirect.class), 028 @XmlElement(name = "GetDigits", type = GetDigits.class), 029 @XmlElement(name = "GetInput", type = GetInput.class), 030 @XmlElement(name = "Record", type = Record.class), 031 @XmlElement(name = "Stream", type = Stream.class), 032 }) 033 private List<com.plivo.api.xml.XmlElement> children = new ArrayList<>(); 034 035 public Response children(ResponseNestable... nestable) throws PlivoValidationException { 036 for(ResponseNestable n: nestable){ 037 Validate.check(n); 038 } 039 children.addAll(Arrays.asList(nestable)); 040 return this; 041 } 042}