//
// 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: 2016.10.04 at 09:41:28 AM CEST 
//

package com.ejie.aa66;

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.XmlElement;
import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlElementRefs;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;

/**
 * <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;sequence>
 *         &lt;element ref="{}codigoPostal" minOccurs="0"/>
 *         &lt;element ref="{}localidad" minOccurs="0"/>
 *         &lt;element ref="{}municipio"/>
 *         &lt;element ref="{}provincia"/>
 *         &lt;choice maxOccurs="2">
 *           &lt;element ref="{}institucion"/>
 *           &lt;element ref="{}nombreApellidos"/>
 *         &lt;/choice>
 *         &lt;element ref="{}direccion"/>
 *       &lt;/sequence>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * @author GFI-NORTE
 */
@XmlAccessorType(value = XmlAccessType.FIELD)
@XmlType(name = "", propOrder = { "codigoPostal", "localidad", "municipio",
		"provincia", "institucionOrNombreApellidos", "direccion" })
@XmlRootElement(name = "destinatario")
public class Destinatario {

	private String codigoPostal;
	private String localidad;
	@XmlElement(required = true)
	private String municipio;
	@XmlElement(required = true)
	private String provincia;
	@XmlElementRefs(value = {
			@XmlElementRef(name = "nombreApellidos", type = JAXBElement.class),
			@XmlElementRef(name = "institucion", type = JAXBElement.class) })
	private List<JAXBElement<String>> institucionOrNombreApellidos;
	@XmlElement(required = true)
	private String direccion;

	/**
	 * Gets the value of the codigoPostal property.
	 * 
	 * possible object is {@link String }
	 *
	 * @return the codigo postal
	 */
	public String getCodigoPostal() {
		return this.codigoPostal;
	}

	/**
	 * Sets the value of the codigoPostal property.
	 * 
	 * value allowed object is {@link String }
	 *
	 * @param value
	 *            the new codigo postal
	 */
	public void setCodigoPostal(String value) {
		this.codigoPostal = value;
	}

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

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

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

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

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

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

	/**
	 * Gets the value of the institucionOrNombreApellidos 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 institucionOrNombreApellidos property.
	 * 
	 * <p>
	 * For example, to add a new item, do as follows:
	 * 
	 * <pre>
	 * getInstitucionOrNombreApellidos().add(newItem);
	 * </pre>
	 * 
	 * 
	 * <p>
	 * Objects of the following type(s) are allowed in the list
	 * {@link JAXBElement }{@code <}{@link String }{@code >} {@link JAXBElement
	 * } {@code <}{@link String }{@code >}
	 * 
	 * List<JAXBElement<String>>
	 *
	 * @return the institucion or nombre apellidos
	 */
	public List<JAXBElement<String>> getInstitucionOrNombreApellidos() {
		if (this.institucionOrNombreApellidos == null) {
			this.institucionOrNombreApellidos = new ArrayList<JAXBElement<String>>();
		}
		return this.institucionOrNombreApellidos;
	}

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

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

}
