package com.ejie.y42b.model;

import com.ejie.x38.control.JsonDateDeserializer;
import com.ejie.x38.control.JsonDateSerializer;
import java.util.Date;
import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.map.annotate.JsonDeserialize;
import org.codehaus.jackson.map.annotate.JsonSerialize;

/**
 * * DestComunicacion  
 * 
 *  
 */

public class DestComunicacion implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	// Clave compuesta
	private Entidad organismo;
	private Comunicacion comunicacion;
	private Date m5feleido;

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

	/**
	 * Method 'DestComunicacion'.
	 * 
	 * @param organismo
	 *            Entidad
	 * @param comunicacion
	 *            Comunicacion
	 * @param m5feleido
	 *            Date
	 */
	public DestComunicacion(Entidad organismo, Comunicacion comunicacion,
			Date m5feleido) {

		this.organismo = organismo;
		this.comunicacion = comunicacion;
		this.m5feleido = m5feleido;
	}

	/**
	 * @return the organismo
	 */
	@JsonIgnore
	public Entidad getOrganismo() {
		return organismo;
	}

	/**
	 * @param organismo
	 *            the organismo to set
	 */
	public void setOrganismo(Entidad organismo) {
		this.organismo = organismo;
	}

	/**
	 * Method 'getComunicacion'.
	 * 
	 * @return Comunicacion
	 */
	@JsonIgnore
	public Comunicacion getComunicacion() {
		return this.comunicacion;
	}

	/**
	 * Method 'setComunicacion'.
	 * 
	 * @param comunicacion
	 *            Comunicacion
	 * @return
	 */

	public void setComunicacion(Comunicacion comunicacion) {
		this.comunicacion = comunicacion;
	}

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

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getM5feleido() {
		return this.m5feleido;
	}

	/**
	 * Method 'setM5feleido'.
	 * 
	 * @param m5feleido
	 *            Date
	 * @return
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setM5feleido(Date m5feleido) {
		this.m5feleido = m5feleido;
	}

	/**
	 * 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("[ organismo: ").append(this.organismo).append(" ]");

		result.append(", [ comunicacion: ").append(this.comunicacion)
				.append(" ]");
		result.append(", [ m5feleido: ").append(this.m5feleido).append(" ]");
		result.append("}");
		return result.toString();
	}

}
