package com.ejie.ab04b.webservice.client.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.XmlType;

/**
 * <p>
 * Java class for destinatarioWs complex type.
 * 
 * <p>
 * The following schema fragment specifies the expected content contained within
 * this class.
 * 
 * <pre>
 * &lt;complexType name="destinatarioWs">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element name="codigoPostal" minOccurs="0">
 *           &lt;simpleType>
 *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *               &lt;maxLength value="5"/>
 *               &lt;minLength value="5"/>
 *             &lt;/restriction>
 *           &lt;/simpleType>
 *         &lt;/element>
 *         &lt;element name="localidad" minOccurs="0">
 *           &lt;simpleType>
 *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *               &lt;maxLength value="80"/>
 *               &lt;minLength value="1"/>
 *             &lt;/restriction>
 *           &lt;/simpleType>
 *         &lt;/element>
 *         &lt;element name="municipio">
 *           &lt;simpleType>
 *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *               &lt;maxLength value="50"/>
 *               &lt;minLength value="1"/>
 *             &lt;/restriction>
 *           &lt;/simpleType>
 *         &lt;/element>
 *         &lt;element name="provincia">
 *           &lt;simpleType>
 *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *               &lt;maxLength value="40"/>
 *               &lt;minLength value="3"/>
 *             &lt;/restriction>
 *           &lt;/simpleType>
 *         &lt;/element>
 *         &lt;choice maxOccurs="2">
 *           &lt;element name="institucion">
 *             &lt;simpleType>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *                 &lt;maxLength value="50"/>
 *                 &lt;minLength value="1"/>
 *               &lt;/restriction>
 *             &lt;/simpleType>
 *           &lt;/element>
 *           &lt;element name="nombreApellidos">
 *             &lt;simpleType>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *                 &lt;minLength value="3"/>
 *                 &lt;maxLength value="50"/>
 *               &lt;/restriction>
 *             &lt;/simpleType>
 *           &lt;/element>
 *         &lt;/choice>
 *         &lt;element name="direccion">
 *           &lt;simpleType>
 *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *               &lt;maxLength value="150"/>
 *               &lt;minLength value="1"/>
 *             &lt;/restriction>
 *           &lt;/simpleType>
 *         &lt;/element>
 *       &lt;/sequence>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * @author GFI-NORTE
 */
@XmlAccessorType(value = XmlAccessType.FIELD)
@XmlType(name = "destinatarioWs", propOrder = { "codigoPostal", "localidad",
		"municipio", "provincia", "institucionOrNombreApellidos", "direccion" })
public class DestinatarioWs {

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

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

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

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

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

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

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

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

	/**
	 * Sets the value of the provincia property.
	 * 
	 * @param value
	 *            allowed object is {@link String }
	 * 
	 */
	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 >}
	 * 
	 * @return List<JAXBElement<String>>
	 */
	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.
	 * 
	 * @return possible object is {@link String }
	 * 
	 */
	public String getDireccion() {
		return this.direccion;
	}

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

}
