package com.ejie.m62fb.model;

import java.math.BigDecimal;
import java.util.Date;

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

import com.ejie.m62fb.utils.serializers.JsonBigDecimalDeserializer;
import com.ejie.m62fb.utils.serializers.JsonBigDecimalSerializer;
import com.ejie.m62fb.model.base.AbstractM62FBModel;
import com.ejie.m62fb.model.direccion.Direccion;
import com.ejie.m62fb.model.tipos.TipoElemento;
import com.ejie.x38.serialization.JsonDateDeserializer;
import com.ejie.x38.serialization.JsonDateSerializer;

/**
 * ElementosPromocionAd.
 * 
XXXX
 */
public class ElementoAd extends AbstractM62FBModel implements
		java.io.Serializable {

	private static final long serialVersionUID = 1L;

	private Integer idElemReg;

	private Integer idElemento;
	private String codElemento;
	private Integer idEmplazamiento;
	private String codVinculElem;
	private String numExpediente;

	private AlojamientoDotacional alojamientoDotacional;
	private Direccion direccion;
	private TipoElemento tipoElemento;

	private BigDecimal supUtilElem;
	private String numFijoIbiElem;

	private Date fecIniGestion;
	private Date fecFinGestion;
	private Integer numOrganoGestor;
	private Date fecEnvOrgGestor;

	/**
	 * Method 'ElementoAd'.
	 */
	public ElementoAd() {
		super();
	}

	/**
	 * Method 'ElementoAd'.
	 * 
	 * @param idElemReg
	 *            Integer
	 */
	public ElementoAd(Integer idElemReg) {
		super();
		this.idElemReg = idElemReg;
	}

	/**
	 * Method 'getIdElemReg'
	 * 
	 * @return idElemReg
	 */
	public Integer getIdElemReg() {
		return this.idElemReg;
	}

	/**
	 * Method 'setIdElemReg'
	 * 
	 * @param idElemReg
	 *            Integer
	 */
	public void setIdElemReg(Integer idElemReg) {
		this.idElemReg = idElemReg;
	}

	/**
	 * Method 'getIdElemento'
	 * 
	 * @return idElemento
	 */
	public Integer getIdElemento() {
		return this.idElemento;
	}

	/**
	 * Method 'setIdElemento'
	 * 
	 * @param idElemento
	 *            Integer
	 */
	public void setIdElemento(Integer idElemento) {
		this.idElemento = idElemento;
	}

	/**
	 * Method 'getCodElemento'
	 * 
	 * @return codElemento
	 */
	public String getCodElemento() {
		return this.codElemento;
	}

	/**
	 * Method 'setCodElemento'
	 * 
	 * @param codElemento
	 *            String
	 */
	public void setCodElemento(String codElemento) {
		this.codElemento = codElemento;
	}

	/**
	 * Method 'getIdEmplazamiento'
	 * 
	 * @return idEmplazamiento
	 */
	public Integer getIdEmplazamiento() {
		return this.idEmplazamiento;
	}

	/**
	 * Method 'setIdEmplazamiento'
	 * 
	 * @param idEmplazamiento
	 *            Integer
	 */
	public void setIdEmplazamiento(Integer idEmplazamiento) {
		this.idEmplazamiento = idEmplazamiento;
	}

	/**
	 * Method 'getCodVinculElem'
	 * 
	 * @return codVinculElem
	 */
	public String getCodVinculElem() {
		return this.codVinculElem;
	}

	/**
	 * Method 'setCodVinculElem'
	 * 
	 * @param codVinculElem
	 *            String
	 */
	public void setCodVinculElem(String codVinculElem) {
		this.codVinculElem = codVinculElem;
	}

	/**
	 * Method 'getNumExpediente'
	 * 
	 * @return numExpediente
	 */
	public String getNumExpediente() {
		return this.numExpediente!=null?numExpediente.toUpperCase():null;
	}

	/**
	 * Method 'setNumExpediente'
	 * 
	 * @param numExpediente
	 *            String
	 */
	public void setNumExpediente(String numExpediente) {
		this.numExpediente = numExpediente!=null?numExpediente.toUpperCase():null;
	}

	/**
	 * Method 'getAlojamientoDotacional'
	 * 
	 * @return alojamientoDotacional
	 */
	public AlojamientoDotacional getAlojamientoDotacional() {
		return this.alojamientoDotacional;
	}

	/**
	 * Method 'setAlojamientoDotacional'
	 * 
	 * @param alojamientoDotacional
	 *            AlojamientoDotacional
	 */
	public void setAlojamientoDotacional(
			AlojamientoDotacional alojamientoDotacional) {
		this.alojamientoDotacional = alojamientoDotacional;
	}

	/**
	 * Method 'getDireccion'
	 * 
	 * @return direccion
	 */
	public Direccion getDireccion() {
		return this.direccion;
	}

	/**
	 * Method 'setDireccion'
	 * 
	 * @param direccion
	 *            Direccion
	 */
	public void setDireccion(Direccion direccion) {
		this.direccion = direccion;
	}

	/**
	 * Method 'getTipoElemento'
	 * 
	 * @return tipoElemento
	 */
	public TipoElemento getTipoElemento() {
		return this.tipoElemento;
	}

	/**
	 * Method 'setTipoElemento'
	 * 
	 * @param tipoElemento
	 *            TipoElemento
	 */
	public void setTipoElemento(TipoElemento tipoElemento) {
		this.tipoElemento = tipoElemento;
	}

	/**
	 * Method 'getSupUtilElem'
	 * 
	 * @return supUtilElem
	 */
	@JsonSerialize(using = JsonBigDecimalSerializer.class)
	public BigDecimal getSupUtilElem() {
		return this.supUtilElem;
	}

	/**
	 * Method 'setSupUtilElem'
	 * 
	 * @param supUtilElem
	 *            BigDecimal
	 */
	@JsonDeserialize(using = JsonBigDecimalDeserializer.class)
	public void setSupUtilElem(BigDecimal supUtilElem) {
		this.supUtilElem = supUtilElem;
	}

	/**
	 * Method 'getNumFijoIbiElem'
	 * 
	 * @return numFijoIbiElem
	 */
	public String getNumFijoIbiElem() {
		return this.numFijoIbiElem;
	}

	/**
	 * Method 'setNumFijoIbiElem'
	 * 
	 * @param numFijoIbiElem
	 *            String
	 */
	public void setNumFijoIbiElem(String numFijoIbiElem) {
		this.numFijoIbiElem = numFijoIbiElem;
	}

	/**
	 * Method 'getFecIniGestion'
	 * 
	 * @return fecIniGestion
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFecIniGestion() {
		return this.fecIniGestion;
	}

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

	/**
	 * Method 'getFecFinGestion'
	 * 
	 * @return fecFinGestion
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFecFinGestion() {
		return this.fecFinGestion;
	}

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

	/**
	 * Method 'getNumOrganoGestor'
	 * 
	 * @return numOrganoGestor
	 */
	public Integer getNumOrganoGestor() {
		return this.numOrganoGestor;
	}

	/**
	 * Method 'setNumOrganoGestor'
	 * 
	 * @param numOrganoGestor
	 *            Integer
	 */
	public void setNumOrganoGestor(Integer numOrganoGestor) {
		this.numOrganoGestor = numOrganoGestor;
	}

	/**
	 * Method 'getFecEnvOrgGestor'
	 * 
	 * @return fecEnvOrgGestor
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFecEnvOrgGestor() {
		return this.fecEnvOrgGestor;
	}

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