package com.ejie.y42b.model;

import java.util.Date;

import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.map.annotate.JsonDeserialize;
import org.codehaus.jackson.map.annotate.JsonSerialize;

import com.ejie.x38.control.JsonDateTimeDeserializer;
import com.ejie.x38.control.JsonDateTimeSerializer;

/**
 * * Item  
 * 
 *  
 */

public class Item implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	// Clave compuesta
	private String itemRef;
	private Envio envio;
	private String nombre;
	private String nombreLocalizacion;
	private String telefono;
	private String email;
	private String seleccionado;
	private Date fechaMailingEnvio;
	private String mailingResponseCode;
	private Date fechaMailingRecepcion;
	private String xmlcampo1;
	private String xmlcampo2;
	private String xmlcampo3;
	private String xmlcampo4;
	private String xmlcampo5;
	private String xmlcampo6;
	private String xmlcampo7;
	private String xmlcampo8;
	private String xmlcampo9;
	private String xmlcampo10;
	private String activa;

	/**
	 * Method 'Item'.
	 * 
	 */
	public Item() {
	}

	/**
	 * Method 'Item'.
	 * 
	 * @param itemRef
	 *            String
	 * @param envio
	 *            Envio
	 * @param nombre
	 *            String
	 * @param nombreLocalizacion
	 *            String
	 * @param telefono
	 *            String
	 * @param email
	 *            String
	 * @param seleccionado
	 *            String
	 * @param fechaMailingEnvio
	 *            Date
	 * @param mailingResponseCode
	 *            String
	 * @param fechaMailingRecepcion
	 *            Date
	 * @param xmlcampo1
	 *            String
	 * @param xmlcampo2
	 *            String
	 * @param xmlcampo3
	 *            String
	 * @param xmlcampo4
	 *            String
	 * @param xmlcampo5
	 *            String
	 * @param xmlcampo6
	 *            String
	 * @param xmlcampo7
	 *            String
	 * @param xmlcampo8
	 *            String
	 * @param xmlcampo9
	 *            String
	 * @param xmlcampo10
	 *            String
	 * @param activa
	 *            String
	 */
	public Item(String itemRef, Envio envio, String nombre,
			String nombreLocalizacion, String telefono, String email,
			String seleccionado, Date fechaMailingEnvio,
			String mailingResponseCode, Date fechaMailingRecepcion,
			String xmlcampo1, String xmlcampo2, String xmlcampo3,
			String xmlcampo4, String xmlcampo5, String xmlcampo6,
			String xmlcampo7, String xmlcampo8, String xmlcampo9,
			String xmlcampo10, String activa) {

		this.itemRef = itemRef;
		this.envio = envio;
		this.nombre = nombre;
		this.nombreLocalizacion = nombreLocalizacion;
		this.telefono = telefono;
		this.email = email;
		this.seleccionado = seleccionado;
		this.fechaMailingEnvio = fechaMailingEnvio;
		this.mailingResponseCode = mailingResponseCode;
		this.fechaMailingRecepcion = fechaMailingRecepcion;
		this.xmlcampo1 = xmlcampo1;
		this.xmlcampo2 = xmlcampo2;
		this.xmlcampo3 = xmlcampo3;
		this.xmlcampo4 = xmlcampo4;
		this.xmlcampo5 = xmlcampo5;
		this.xmlcampo6 = xmlcampo6;
		this.xmlcampo7 = xmlcampo7;
		this.xmlcampo8 = xmlcampo8;
		this.xmlcampo9 = xmlcampo9;
		this.xmlcampo10 = xmlcampo10;
		this.activa = activa;
	}

	/**
	 * Method 'getItemRef'.
	 * 
	 * @return String
	 */

	public String getItemRef() {
		return this.itemRef;
	}

	/**
	 * Method 'setItemRef'.
	 * 
	 * @param itemRef
	 *            String
	 * @return
	 */

	public void setItemRef(String itemRef) {
		this.itemRef = itemRef;
	}

	/**
	 * Method 'getEnvio'.
	 * 
	 * @return Envio
	 */
	@JsonIgnore()
	public Envio getEnvio() {
		return this.envio;
	}

	/**
	 * Method 'setEnvio'.
	 * 
	 * @param envio
	 *            Envio
	 * @return
	 */

	public void setEnvio(Envio envio) {
		this.envio = envio;
	}

	/**
	 * Method 'getNombre'.
	 * 
	 * @return String
	 */

	public String getNombre() {
		return this.nombre;
	}

	/**
	 * Method 'setNombre'.
	 * 
	 * @param nombre
	 *            String
	 * @return
	 */

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	/**
	 * Method 'getNombreLocalizacion'.
	 * 
	 * @return String
	 */

	public String getNombreLocalizacion() {
		return this.nombreLocalizacion;
	}

	/**
	 * Method 'setNombreLocalizacion'.
	 * 
	 * @param nombreLocalizacion
	 *            String
	 * @return
	 */

	public void setNombreLocalizacion(String nombreLocalizacion) {
		this.nombreLocalizacion = nombreLocalizacion;
	}

	/**
	 * Method 'getTelefono'.
	 * 
	 * @return String
	 */
	public String getTelefono() {
		return this.telefono;
	}

	/**
	 * Method 'setTelefono'.
	 * 
	 * @param telefono
	 *            String
	 * @return
	 */

	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}

	/**
	 * Method 'getEmail'.
	 * 
	 * @return String
	 */

	public String getEmail() {
		return this.email;
	}

	/**
	 * Method 'setEmail'.
	 * 
	 * @param email
	 *            String
	 * @return
	 */

	public void setEmail(String email) {
		this.email = email;
	}

	/**
	 * Method 'getSeleccionado'.
	 * 
	 * @return String
	 */

	public String getSeleccionado() {
		return this.seleccionado;
	}

	/**
	 * Method 'setSeleccionado'.
	 * 
	 * @param seleccionado
	 *            String
	 * @return
	 */

	public void setSeleccionado(String seleccionado) {
		this.seleccionado = seleccionado;
	}

	/**
	 * Method 'getFechaMailingEnvio'.
	 * 
	 * @return Date
	 */

	@JsonSerialize(using = JsonDateTimeSerializer.class)
	public Date getFechaMailingEnvio() {
		return this.fechaMailingEnvio;
	}

	/**
	 * Method 'setFechaMailingEnvio'.
	 * 
	 * @param fechaMailingEnvio
	 *            Date
	 * @return
	 */
	@JsonDeserialize(using = JsonDateTimeDeserializer.class)
	public void setFechaMailingEnvio(Date fechaMailingEnvio) {
		this.fechaMailingEnvio = fechaMailingEnvio;
	}

	/**
	 * Method 'getMailingResponseCode'.
	 * 
	 * @return String
	 */

	public String getMailingResponseCode() {
		return this.mailingResponseCode;
	}

	/**
	 * Method 'setMailingResponseCode'.
	 * 
	 * @param mailingResponseCode
	 *            String
	 * @return
	 */

	public void setMailingResponseCode(String mailingResponseCode) {
		this.mailingResponseCode = mailingResponseCode;
	}

	/**
	 * Method 'getFechaMailingRecepcion'.
	 * 
	 * @return Date
	 */

	@JsonSerialize(using = JsonDateTimeSerializer.class)
	public Date getFechaMailingRecepcion() {
		return this.fechaMailingRecepcion;
	}

	/**
	 * Method 'setFechaMailingRecepcion'.
	 * 
	 * @param fechaMailingRecepcion
	 *            Date
	 * @return
	 */
	@JsonDeserialize(using = JsonDateTimeDeserializer.class)
	public void setFechaMailingRecepcion(Date fechaMailingRecepcion) {
		this.fechaMailingRecepcion = fechaMailingRecepcion;
	}

	/**
	 * Method 'getXmlcampo1'.
	 * 
	 * @return String
	 */

	public String getXmlcampo1() {
		return this.xmlcampo1;
	}

	/**
	 * Method 'setXmlcampo1'.
	 * 
	 * @param xmlcampo1
	 *            String
	 * @return
	 */

	public void setXmlcampo1(String xmlcampo1) {
		this.xmlcampo1 = xmlcampo1;
	}

	/**
	 * Method 'getXmlcampo2'.
	 * 
	 * @return String
	 */

	public String getXmlcampo2() {
		return this.xmlcampo2;
	}

	/**
	 * Method 'setXmlcampo2'.
	 * 
	 * @param xmlcampo2
	 *            String
	 * @return
	 */

	public void setXmlcampo2(String xmlcampo2) {
		this.xmlcampo2 = xmlcampo2;
	}

	/**
	 * Method 'getXmlcampo3'.
	 * 
	 * @return String
	 */

	public String getXmlcampo3() {
		return this.xmlcampo3;
	}

	/**
	 * Method 'setXmlcampo3'.
	 * 
	 * @param xmlcampo3
	 *            String
	 * @return
	 */

	public void setXmlcampo3(String xmlcampo3) {
		this.xmlcampo3 = xmlcampo3;
	}

	/**
	 * Method 'getXmlcampo4'.
	 * 
	 * @return String
	 */

	public String getXmlcampo4() {
		return this.xmlcampo4;
	}

	/**
	 * Method 'setXmlcampo4'.
	 * 
	 * @param xmlcampo4
	 *            String
	 * @return
	 */

	public void setXmlcampo4(String xmlcampo4) {
		this.xmlcampo4 = xmlcampo4;
	}

	/**
	 * Method 'getXmlcampo5'.
	 * 
	 * @return String
	 */

	public String getXmlcampo5() {
		return this.xmlcampo5;
	}

	/**
	 * Method 'setXmlcampo5'.
	 * 
	 * @param xmlcampo5
	 *            String
	 * @return
	 */

	public void setXmlcampo5(String xmlcampo5) {
		this.xmlcampo5 = xmlcampo5;
	}

	/**
	 * Method 'getXmlcampo6'.
	 * 
	 * @return String
	 */

	public String getXmlcampo6() {
		return this.xmlcampo6;
	}

	/**
	 * Method 'setXmlcampo6'.
	 * 
	 * @param xmlcampo6
	 *            String
	 * @return
	 */

	public void setXmlcampo6(String xmlcampo6) {
		this.xmlcampo6 = xmlcampo6;
	}

	/**
	 * Method 'getXmlcampo7'.
	 * 
	 * @return String
	 */

	public String getXmlcampo7() {
		return this.xmlcampo7;
	}

	/**
	 * Method 'setXmlcampo7'.
	 * 
	 * @param xmlcampo7
	 *            String
	 * @return
	 */

	public void setXmlcampo7(String xmlcampo7) {
		this.xmlcampo7 = xmlcampo7;
	}

	/**
	 * Method 'getXmlcampo8'.
	 * 
	 * @return String
	 */

	public String getXmlcampo8() {
		return this.xmlcampo8;
	}

	/**
	 * Method 'setXmlcampo8'.
	 * 
	 * @param xmlcampo8
	 *            String
	 * @return
	 */

	public void setXmlcampo8(String xmlcampo8) {
		this.xmlcampo8 = xmlcampo8;
	}

	/**
	 * Method 'getXmlcampo9'.
	 * 
	 * @return String
	 */

	public String getXmlcampo9() {
		return this.xmlcampo9;
	}

	/**
	 * Method 'setXmlcampo9'.
	 * 
	 * @param xmlcampo9
	 *            String
	 * @return
	 */

	public void setXmlcampo9(String xmlcampo9) {
		this.xmlcampo9 = xmlcampo9;
	}

	/**
	 * Method 'getXmlcampo10'.
	 * 
	 * @return String
	 */

	public String getXmlcampo10() {
		return this.xmlcampo10;
	}

	/**
	 * Method 'setXmlcampo10'.
	 * 
	 * @param xmlcampo10
	 *            String
	 * @return
	 */

	public void setXmlcampo10(String xmlcampo10) {
		this.xmlcampo10 = xmlcampo10;
	}

	/**
	 * Method 'getActiva'.
	 * 
	 * @return String
	 */

	public String getActiva() {
		return this.activa;
	}

	/**
	 * Method 'setActiva'.
	 * 
	 * @param activa
	 *            String
	 * @return
	 */

	public void setActiva(String activa) {
		this.activa = activa;
	}

	/**
	 * Intended only for logging and debugging.
	 * 
	 * Here, the contents of every main field are placed into the result.
	 * 
	 * @return String
	 */
	@Override()
	public String toString() {
		StringBuilder result = new StringBuilder();
		result.append(this.getClass().getName()).append(" Object { ");
		// Clave compuesta

		result.append("[ itemRef: ").append(this.itemRef).append(" ]");

		result.append(", [ envio: ").append(this.envio).append(" ]");
		result.append(", [ nombre: ").append(this.nombre).append(" ]");
		result.append(", [ nombreLocalizacion: ")
				.append(this.nombreLocalizacion).append(" ]");
		result.append(", [ telefono: ").append(this.telefono).append(" ]");
		result.append(", [ email: ").append(this.email).append(" ]");
		result.append(", [ seleccionado: ").append(this.seleccionado)
				.append(" ]");
		result.append(", [ fechaMailingEnvio: ").append(this.fechaMailingEnvio)
				.append(" ]");
		result.append(", [ mailingResponseCode: ")
				.append(this.mailingResponseCode).append(" ]");
		result.append(", [ fechaMailingRecepcion: ")
				.append(this.fechaMailingRecepcion).append(" ]");
		result.append(", [ xmlcampo1: ").append(this.xmlcampo1).append(" ]");
		result.append(", [ xmlcampo2: ").append(this.xmlcampo2).append(" ]");
		result.append(", [ xmlcampo3: ").append(this.xmlcampo3).append(" ]");
		result.append(", [ xmlcampo4: ").append(this.xmlcampo4).append(" ]");
		result.append(", [ xmlcampo5: ").append(this.xmlcampo5).append(" ]");
		result.append(", [ xmlcampo6: ").append(this.xmlcampo6).append(" ]");
		result.append(", [ xmlcampo7: ").append(this.xmlcampo7).append(" ]");
		result.append(", [ xmlcampo8: ").append(this.xmlcampo8).append(" ]");
		result.append(", [ xmlcampo9: ").append(this.xmlcampo9).append(" ]");
		result.append(", [ xmlcampo10: ").append(this.xmlcampo10).append(" ]");
		result.append(", [ activa: ").append(this.activa).append(" ]");
		result.append("}");
		return result.toString();
	}

}
