//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.1.12-1.0.0.0_2-1-12-ea 
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
// Any modifications to this file will be lost upon recompilation of the source schema. 
// Generated on: 2017.03.07 at 10:44:52 AM CET 
//

package com.ejie.x43k.xml;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlElementRefs;
import javax.xml.bind.annotation.XmlMixed;
import javax.xml.bind.annotation.XmlType;

/**
 * <p>
 * Java class for noticeType complex type.
 * 
 * <p>
 * The following schema fragment specifies the expected content contained within
 * this class.
 * 
 * <pre>
 * &lt;complexType name="noticeType">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;all>
 *         &lt;element name="addressee" type="{http://ejie.com/x43k/xml}addresseeType" minOccurs="0"/>
 *         &lt;element name="channel" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;all>
 *                   &lt;element name="channelType" minOccurs="0">
 *                     &lt;simpleType>
 *                       &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *                         &lt;enumeration value="EMAIL"/>
 *                         &lt;enumeration value="SMS"/>
 *                       &lt;/restriction>
 *                     &lt;/simpleType>
 *                   &lt;/element>
 *                   &lt;element name="channelInfo" minOccurs="0">
 *                     &lt;complexType>
 *                       &lt;complexContent>
 *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                           &lt;choice minOccurs="0">
 *                             &lt;element name="emailAddress" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *                             &lt;element name="smsNumber" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *                           &lt;/choice>
 *                         &lt;/restriction>
 *                       &lt;/complexContent>
 *                     &lt;/complexType>
 *                   &lt;/element>
 *                 &lt;/all>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *       &lt;/all>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * @author GFI-NORTE
 */
@XmlAccessorType(value = XmlAccessType.FIELD)
@XmlType(name = "noticeType", propOrder = {

})
public class NoticeType implements Serializable {

	private final static long serialVersionUID = 12343L;
	private AddresseeType addressee;
	private NoticeType.Channel channel;

	/**
	 * Gets the value of the addressee property.
	 * 
	 * @return possible object is {@link AddresseeType }
	 * 
	 */
	public AddresseeType getAddressee() {
		return this.addressee;
	}

	/**
	 * Sets the value of the addressee property.
	 * 
	 * @param value
	 *            allowed object is {@link AddresseeType }
	 * 
	 */
	public void setAddressee(AddresseeType value) {
		this.addressee = value;
	}

	/**
	 * Checks if is sets the addressee.
	 *
	 * @return boolean
	 */
	public boolean isSetAddressee() {
		return (this.addressee != null);
	}

	/**
	 * Gets the value of the channel property.
	 * 
	 * @return possible object is {@link NoticeType.Channel }
	 * 
	 */
	public NoticeType.Channel getChannel() {
		return this.channel;
	}

	/**
	 * Sets the value of the channel property.
	 * 
	 * @param value
	 *            allowed object is {@link NoticeType.Channel }
	 * 
	 */
	public void setChannel(NoticeType.Channel value) {
		this.channel = value;
	}

	/**
	 * Checks if is sets the channel.
	 *
	 * @return boolean
	 */
	public boolean isSetChannel() {
		return (this.channel != null);
	}

	/**
	 * <p>
	 * Java class for anonymous complex type.
	 * 
	 * <p>
	 * The following schema fragment specifies the expected content contained
	 * within this class.
	 * 
	 * <pre>
	 * &lt;complexType>
	 *   &lt;complexContent>
	 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *       &lt;all>
	 *         &lt;element name="channelType" minOccurs="0">
	 *           &lt;simpleType>
	 *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
	 *               &lt;enumeration value="EMAIL"/>
	 *               &lt;enumeration value="SMS"/>
	 *             &lt;/restriction>
	 *           &lt;/simpleType>
	 *         &lt;/element>
	 *         &lt;element name="channelInfo" minOccurs="0">
	 *           &lt;complexType>
	 *             &lt;complexContent>
	 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *                 &lt;choice minOccurs="0">
	 *                   &lt;element name="emailAddress" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
	 *                   &lt;element name="smsNumber" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
	 *                 &lt;/choice>
	 *               &lt;/restriction>
	 *             &lt;/complexContent>
	 *           &lt;/complexType>
	 *         &lt;/element>
	 *       &lt;/all>
	 *     &lt;/restriction>
	 *   &lt;/complexContent>
	 * &lt;/complexType>
	 * </pre>
	 * 
	 * 
	 */
	@XmlAccessorType(value = XmlAccessType.FIELD)
	@XmlType(name = "", propOrder = {

	})
	public static class Channel implements Serializable {

		private final static long serialVersionUID = 12343L;
		private String channelType;
		private NoticeType.Channel.ChannelInfo channelInfo;

		/**
		 * Gets the value of the channelType property.
		 * 
		 * @return possible object is {@link String }
		 * 
		 */
		public String getChannelType() {
			return this.channelType;
		}

		/**
		 * Sets the value of the channelType property.
		 * 
		 * @param value
		 *            allowed object is {@link String }
		 * 
		 */
		public void setChannelType(String value) {
			this.channelType = value;
		}

		/**
		 * Checks if is sets the channel type.
		 *
		 * @return boolean
		 */
		public boolean isSetChannelType() {
			return (this.channelType != null);
		}

		/**
		 * Gets the value of the channelInfo property.
		 * 
		 * @return possible object is {@link NoticeType.Channel.ChannelInfo }
		 * 
		 */
		public NoticeType.Channel.ChannelInfo getChannelInfo() {
			return this.channelInfo;
		}

		/**
		 * Sets the value of the channelInfo property.
		 * 
		 * @param value
		 *            allowed object is {@link NoticeType.Channel.ChannelInfo }
		 * 
		 */
		public void setChannelInfo(NoticeType.Channel.ChannelInfo value) {
			this.channelInfo = value;
		}

		/**
		 * Checks if is sets the channel info.
		 *
		 * @return boolean
		 */
		public boolean isSetChannelInfo() {
			return (this.channelInfo != null);
		}

		/**
		 * <p>
		 * Java class for anonymous complex type.
		 * 
		 * <p>
		 * The following schema fragment specifies the expected content
		 * contained within this class.
		 * 
		 * <pre>
		 * &lt;complexType>
		 *   &lt;complexContent>
		 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
		 *       &lt;choice minOccurs="0">
		 *         &lt;element name="emailAddress" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
		 *         &lt;element name="smsNumber" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
		 *       &lt;/choice>
		 *     &lt;/restriction>
		 *   &lt;/complexContent>
		 * &lt;/complexType>
		 * </pre>
		 * 
		 * 
		 */
		@XmlAccessorType(value = XmlAccessType.FIELD)
		@XmlType(name = "", propOrder = { "content" })
		public static class ChannelInfo implements Serializable {

			private final static long serialVersionUID = 12343L;
			@XmlElementRefs(value = {
					@XmlElementRef(name = "smsNumber", namespace = "http://ejie.com/x43k/xml", type = JAXBElement.class),
					@XmlElementRef(name = "emailAddress", namespace = "http://ejie.com/x43k/xml", type = JAXBElement.class) })
			@XmlMixed()
			private List<Serializable> content;

			/**
			 * Gets the value of the content property.
			 * 
			 * <p>
			 * This accessor method returns a reference to the live list, not a
			 * snapshot. Therefore any modification you make to the returned
			 * list will be present inside the JAXB object. This is why there is
			 * not a <CODE>set</CODE> method for the content property.
			 * 
			 * <p>
			 * For example, to add a new item, do as follows:
			 * 
			 * <pre>
			 * getContent().add(newItem);
			 * </pre>
			 * 
			 * 
			 * <p>
			 * Objects of the following type(s) are allowed in the list
			 * {@link JAXBElement }{@code <}{@link String }{@code >}
			 * {@link String } {@link JAXBElement }{@code <}{@link String }
			 * {@code >}
			 * 
			 * @return List<Serializable>
			 */
			public List<Serializable> getContent() {
				if (content == null) {
					content = new ArrayList<Serializable>();
				}
				return this.content;
			}

			/**
			 * Checks if is sets the content.
			 *
			 * @return boolean
			 */
			public boolean isSetContent() {
				return ((this.content != null) && (!this.content.isEmpty()));
			}

			/**
			 * unsetContent.
			 */
			public void unsetContent() {
				this.content = null;
			}

		}

	}

}
