001package com.plivo.api.xml; 002 003import javax.xml.bind.annotation.XmlAttribute; 004import javax.xml.bind.annotation.XmlElement; 005import javax.xml.bind.annotation.XmlElements; 006import javax.xml.bind.annotation.XmlRootElement; 007import javax.xml.bind.annotation.XmlValue; 008import java.util.ArrayList; 009import java.util.Arrays; 010import java.util.List; 011import javax.xml.bind.annotation.XmlMixed; 012import com.plivo.api.exceptions.PlivoXmlException; 013 014@XmlRootElement(name = "lang") 015public class Lang extends PlivoXml implements EmphasisNestable, 016 LangNestable, 017 PNestable, 018 ProsodyNestable, 019 SNestable, 020 SpeakNestable { 021 022 @XmlMixed 023 private List<Object> mixedContent = new ArrayList<Object>(); 024 025 @XmlAttribute(name="xml:lang") 026 private String xmllang; 027 028 public Lang() { 029 } 030 031 public Lang(String content) { 032 this.mixedContent.add(content); 033 } 034 035 public Lang(String content, String xmllang) { 036 this.mixedContent.add(content); 037 this.xmllang = xmllang; 038 } 039 040 public String getXmllang() { 041 return this.xmllang; 042 } 043 044 public Lang children(Object... nestables) throws PlivoXmlException { 045 for (Object obj : nestables) { 046 if (obj instanceof LangNestable || obj instanceof String) { 047 mixedContent.add(obj); 048 } else { 049 throw new PlivoXmlException("XML Validation Error: <" + obj.getClass().getSimpleName() + "> can not be nested in <lang>"); 050 } 051 } 052 return this; 053 } 054}