All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.plivo.api.xml.Lang Maven / Gradle / Ivy

Go to download

A Java SDK to make voice calls & send SMS using Plivo and to generate Plivo XML

There is a newer version: 5.46.0
Show newest version
package com.plivo.api.xml;

import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElements;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlValue;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javax.xml.bind.annotation.XmlMixed;
import com.plivo.api.exceptions.PlivoXmlException;

@XmlRootElement(name = "lang")
public class Lang extends PlivoXml implements EmphasisNestable,
                                              LangNestable,
                                              PNestable,
                                              ProsodyNestable,
                                              SNestable,
                                              SpeakNestable {

  @XmlMixed
  private List mixedContent = new ArrayList();

  @XmlAttribute(name="xml:lang")
  private String xmllang;

  public Lang() {
  }

  public Lang(String content) {
    this.mixedContent.add(content);
  }

  public Lang(String content, String xmllang) {
    this.mixedContent.add(content);
    this.xmllang = xmllang;
  }

  public String getXmllang() {
    return this.xmllang;
  }

  public Lang children(Object... nestables) throws PlivoXmlException {
    for (Object obj : nestables) {
      if (obj instanceof LangNestable || obj instanceof String) {
        mixedContent.add(obj);
      } else {
        throw new PlivoXmlException("XML Validation Error: <" + obj.getClass().getSimpleName() + "> can not be nested in ");
      }
    }
    return this;
  }
}