package com.ejie.ab04b.model.solicitud;

import java.util.Date;

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

import com.ejie.ab04b.model.nora.Municipio;
import com.ejie.ab04b.model.nora.Pais;
import com.ejie.ab04b.model.nora.Provincia;
import com.ejie.x38.serialization.JsonDateDeserializer;
import com.ejie.x38.serialization.JsonDateSerializer;

/**
 * Ab0485s01 generated by UDA, 12-abr-2017 11:44:45.
 * 
 * @author UDA
 */

public class SolicPromotor implements java.io.Serializable {

	private static final long serialVersionUID = 1L;

	// Clave compuesta
	private SolicObra obra;
	private String tipdoc085;
	private String numdoc085;
	private java.util.Date fecalt085;

	private String tipoprm085;
	private Date fecbaj085;
	private String nomprm085;
	private String paisprm085;
	private String prvprm085;
	private String munprm085;
	private String dmunprm085;
	private String dirprm085;
	private String cpoprm085;
	private Long ordexp085;
	private String usualt085;
	private Date fecmod085;
	private String usumod085;
	private String descprm085;

	// añadidos
	private Pais pais;
	private Provincia provincia;
	private Municipio municipio;

	/**
	 * Method 'Ab0485s01'.
	 */
	public SolicPromotor() {
	}

	/**
	 * Method 'SolicObra'.
	 * 
	 *  obra
	 *            Ab0482s01
	 *  tipdoc085
	 *            String
	 *  numdoc085
	 *            String
	 *  fecalt085
	 *            Date
	 *  tipoprm085
	 *            String
	 *
	 * @param obra the obra
	 * @param tipdoc085 the tipdoc 085
	 * @param numdoc085 the numdoc 085
	 * @param fecalt085 the fecalt 085
	 * @param tipoprm085 the tipoprm 085
	 */
	public SolicPromotor(SolicObra obra, String tipdoc085, String numdoc085,
			Date fecalt085, String tipoprm085) {
		this.obra = obra;
		this.tipdoc085 = tipdoc085;
		this.numdoc085 = numdoc085;
		this.fecalt085 = fecalt085;
		this.tipoprm085 = tipoprm085;
	}

	/**
	 * Method 'SolicPromotor'.
	 * 
	 *  obra
	 *            SolicObra
	 *  tipdoc085
	 *            String
	 *  numdoc085
	 *            String
	 *  fecalt085
	 *            Date
	 *  tipoprm085
	 *            String
	 *  fecbaj085
	 *            Date
	 *  nomprm085
	 *            String
	 *  paisprm085
	 *            String
	 *  prvprm085
	 *            String
	 *  munprm085
	 *            String
	 *  dmunprm085
	 *            String
	 *  dirprm085
	 *            String
	 *  cpoprm085
	 *            String
	 *  ordexp085
	 *            Long
	 *  usualt085
	 *            String
	 *  fecmod085
	 *            Date
	 *  usumod085
	 *            String
	 *  descprm085
	 *            String
	 *
	 * @param obra the obra
	 * @param tipdoc085 the tipdoc 085
	 * @param numdoc085 the numdoc 085
	 * @param fecalt085 the fecalt 085
	 * @param tipoprm085 the tipoprm 085
	 * @param fecbaj085 the fecbaj 085
	 * @param nomprm085 the nomprm 085
	 * @param paisprm085 the paisprm 085
	 * @param prvprm085 the prvprm 085
	 * @param munprm085 the munprm 085
	 * @param dmunprm085 the dmunprm 085
	 * @param dirprm085 the dirprm 085
	 * @param cpoprm085 the cpoprm 085
	 * @param ordexp085 the ordexp 085
	 * @param usualt085 the usualt 085
	 * @param fecmod085 the fecmod 085
	 * @param usumod085 the usumod 085
	 * @param descprm085 the descprm 085
	 */
	public SolicPromotor(SolicObra obra, String tipdoc085, String numdoc085,
			Date fecalt085, String tipoprm085, Date fecbaj085,
			String nomprm085, String paisprm085, String prvprm085,
			String munprm085, String dmunprm085, String dirprm085,
			String cpoprm085, Long ordexp085, String usualt085, Date fecmod085,
			String usumod085, String descprm085) {

		this.obra = obra;
		this.tipdoc085 = tipdoc085;
		this.numdoc085 = numdoc085;
		this.fecalt085 = fecalt085;
		this.tipoprm085 = tipoprm085;
		this.fecbaj085 = fecbaj085;
		this.nomprm085 = nomprm085;
		this.paisprm085 = paisprm085;
		this.prvprm085 = prvprm085;
		this.munprm085 = munprm085;
		this.dmunprm085 = dmunprm085;
		this.dirprm085 = dirprm085;
		this.cpoprm085 = cpoprm085;
		this.ordexp085 = ordexp085;
		this.usualt085 = usualt085;
		this.fecmod085 = fecmod085;
		this.usumod085 = usumod085;
		this.descprm085 = descprm085;
	}

	/**
	 * Method 'getObra'.
	 * 
	 *  SolicObra
	 *
	 * @return the obra
	 */
	public SolicObra getObra() {
		return this.obra;
	}

	/**
	 * Method 'setObra'.
	 * 
	 *  obra
	 *            SolicObra
	 *
	 * @param obra the new obra
	 */

	public void setObra(SolicObra obra) {
		this.obra = obra;
	}

	/**
	 * Method 'getProvincia'.
	 * 
	 *  String
	 *
	 * @return the provincia
	 */
	public String getProvincia() {
		if (this.provincia != null) {
			return this.provincia.getDescripcion();
		} else {
			return null;
		}
	}

	/**
	 * Method 'getMunicipio'.
	 * 
	 *  String
	 *
	 * @return the municipio
	 */
	public String getMunicipio() {
		if (this.municipio != null) {
			return this.municipio.getDescripcion();
		} else {
			return null;
		}
	}

	/**
	 * Method 'getProvincia'.
	 * 
	 *  String
	 *
	 * @return the cod provincia
	 */
	public String getCodProvincia() {
		if (this.provincia != null) {
			return this.provincia.getCodProvincia();
		} else {
			return null;
		}
	}

	/**
	 * Method 'getMunicipio'.
	 * 
	 *  String
	 *
	 * @return the cod municipio
	 */
	public String getCodMunicipio() {
		if (this.municipio != null) {
			return this.municipio.getCodMunicipio();
		} else {
			return null;
		}
	}

	/**
	 *  provincia
	 *            the provincia to set.
	 *
	 * @param provincia the new provincia
	 */
	public void setProvincia(Provincia provincia) {
		this.provincia = provincia;
	}

	/**
	 *  municipio
	 *            the municipio to set.
	 *
	 * @param municipio the new municipio
	 */
	public void setMunicipio(Municipio municipio) {
		this.municipio = municipio;
	}

	/**
	 * Method 'getTipdoc085'.
	 * 
	 *  String
	 *
	 * @return the tipdoc 085
	 */

	public String getTipdoc085() {
		return this.tipdoc085;
	}

	/**
	 * Method 'setTipdoc085'.
	 * 
	 *  tipdoc085
	 *            String
	 *
	 * @param tipdoc085 the new tipdoc 085
	 */

	public void setTipdoc085(String tipdoc085) {
		this.tipdoc085 = tipdoc085;
	}

	/**
	 * Method 'getNumdoc085'.
	 * 
	 *  String
	 *
	 * @return the numdoc 085
	 */

	public String getNumdoc085() {
		return this.numdoc085;
	}

	/**
	 * Method 'setNumdoc085'.
	 * 
	 *  numdoc085
	 *            String
	 *
	 * @param numdoc085 the new numdoc 085
	 */

	public void setNumdoc085(String numdoc085) {
		this.numdoc085 = numdoc085;
	}

	/**
	 * Method 'getFecalt085'.
	 * 
	 *  Date
	 *
	 * @return the fecalt 085
	 */

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

	/**
	 * Method 'setFecalt085'.
	 * 
	 *  fecalt085
	 *            Date
	 *
	 * @param fecalt085 the new fecalt 085
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFecalt085(Date fecalt085) {
		this.fecalt085 = fecalt085;
	}

	/**
	 * Method 'getTipoprm085'.
	 * 
	 *  String
	 *
	 * @return the tipoprm 085
	 */

	public String getTipoprm085() {
		return this.tipoprm085;
	}

	/**
	 * Method 'setTipoprm085'.
	 * 
	 *  tipoprm085
	 *            String
	 *
	 * @param tipoprm085 the new tipoprm 085
	 */

	public void setTipoprm085(String tipoprm085) {
		this.tipoprm085 = tipoprm085;
	}

	/**
	 * Method 'getFecbaj085'.
	 * 
	 *  java.util.Date
	 *
	 * @return the fecbaj 085
	 */

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

	/**
	 * Method 'setFecbaj085'.
	 * 
	 *  fecbaj085
	 *            java.util.Date
	 *
	 * @param fecbaj085 the new fecbaj 085
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFecbaj085(Date fecbaj085) {
		this.fecbaj085 = fecbaj085;
	}

	/**
	 * Method 'getNomprm085'.
	 * 
	 *  String
	 *
	 * @return the nomprm 085
	 */

	public String getNomprm085() {
		return this.nomprm085;
	}

	/**
	 * Method 'setNomprm085'.
	 * 
	 *  nomprm085
	 *            String
	 *
	 * @param nomprm085 the new nomprm 085
	 */

	public void setNomprm085(String nomprm085) {
		this.nomprm085 = nomprm085;
	}

	/**
	 * Method 'getPaisprm085'.
	 * 
	 *  String
	 *
	 * @return the paisprm 085
	 */

	public String getPaisprm085() {
		return this.paisprm085;
	}

	/**
	 * Method 'setPaisprm085'.
	 * 
	 *  paisprm085
	 *            String
	 *
	 * @param paisprm085 the new paisprm 085
	 */

	public void setPaisprm085(String paisprm085) {
		this.paisprm085 = paisprm085;
	}

	/**
	 * Method 'getPrvprm085'.
	 * 
	 *  String
	 *
	 * @return the prvprm 085
	 */

	public String getPrvprm085() {
		return this.prvprm085;
	}

	/**
	 * Method 'setPrvprm085'.
	 * 
	 *  prvprm085
	 *            String
	 *
	 * @param prvprm085 the new prvprm 085
	 */

	public void setPrvprm085(String prvprm085) {
		this.prvprm085 = prvprm085;
	}

	/**
	 * Method 'getMunprm085'.
	 * 
	 *  String
	 *
	 * @return the munprm 085
	 */

	public String getMunprm085() {
		return this.munprm085;
	}

	/**
	 * Method 'setMunprm085'.
	 * 
	 *  munprm085
	 *            String
	 *
	 * @param munprm085 the new munprm 085
	 */

	public void setMunprm085(String munprm085) {
		this.munprm085 = munprm085;
	}

	/**
	 * Method 'getDmunprm085'.
	 * 
	 *  String
	 *
	 * @return the dmunprm 085
	 */

	public String getDmunprm085() {
		return this.dmunprm085;
	}

	/**
	 * Method 'setDmunprm085'.
	 * 
	 *  dmunprm085
	 *            String
	 *
	 * @param dmunprm085 the new dmunprm 085
	 */

	public void setDmunprm085(String dmunprm085) {
		this.dmunprm085 = dmunprm085;
	}

	/**
	 * Method 'getDirprm085'.
	 * 
	 *  String
	 *
	 * @return the dirprm 085
	 */

	public String getDirprm085() {
		return this.dirprm085;
	}

	/**
	 * Method 'setDirprm085'.
	 * 
	 *  dirprm085
	 *            String
	 *
	 * @param dirprm085 the new dirprm 085
	 */

	public void setDirprm085(String dirprm085) {
		this.dirprm085 = dirprm085;
	}

	/**
	 * Method 'getCpoprm085'.
	 * 
	 *  String
	 *
	 * @return the cpoprm 085
	 */

	public String getCpoprm085() {
		return this.cpoprm085;
	}

	/**
	 * Method 'setCpoprm085'.
	 * 
	 *  cpoprm085
	 *            String
	 *
	 * @param cpoprm085 the new cpoprm 085
	 */

	public void setCpoprm085(String cpoprm085) {
		this.cpoprm085 = cpoprm085;
	}

	/**
	 * Method 'getOrdexp085'.
	 * 
	 *  Long
	 *
	 * @return the ordexp 085
	 */

	public Long getOrdexp085() {
		return this.ordexp085;
	}

	/**
	 * Method 'setOrdexp085'.
	 * 
	 *  ordexp085
	 *            Long
	 *
	 * @param ordexp085 the new ordexp 085
	 */

	public void setOrdexp085(Long ordexp085) {
		this.ordexp085 = ordexp085;
	}

	/**
	 * Method 'getUsualt085'.
	 * 
	 *  String
	 *
	 * @return the usualt 085
	 */

	public String getUsualt085() {
		return this.usualt085;
	}

	/**
	 * Method 'setUsualt085'.
	 * 
	 *  usualt085
	 *            String
	 *
	 * @param usualt085 the new usualt 085
	 */

	public void setUsualt085(String usualt085) {
		this.usualt085 = usualt085;
	}

	/**
	 * Method 'getFecmod085'.
	 * 
	 *  java.util.Date
	 *
	 * @return the fecmod 085
	 */

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

	/**
	 * Method 'setFecmod085'.
	 * 
	 *  fecmod085
	 *            java.util.Date
	 *
	 * @param fecmod085 the new fecmod 085
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFecmod085(Date fecmod085) {
		this.fecmod085 = fecmod085;
	}

	/**
	 * Method 'getUsumod085'.
	 * 
	 *  String
	 *
	 * @return the usumod 085
	 */

	public String getUsumod085() {
		return this.usumod085;
	}

	/**
	 * Method 'setUsumod085'.
	 * 
	 *  usumod085
	 *            String
	 *
	 * @param usumod085 the new usumod 085
	 */

	public void setUsumod085(String usumod085) {
		this.usumod085 = usumod085;
	}

	/**
	 * Method 'getDescprm085'.
	 * 
	 *  String
	 *
	 * @return the descprm 085
	 */

	public String getDescprm085() {
		return this.descprm085;
	}

	/**
	 * Method 'setDescprm085'.
	 * 
	 *  descprm085
	 *            String
	 *
	 * @param descprm085 the new descprm 085
	 */

	public void setDescprm085(String descprm085) {
		this.descprm085 = descprm085;
	}

	/**
	 * Gets the pais.
	 *
	 * @return the pais
	 */
	public Pais getPais() {
		return pais;
	}

	/**
	 * Sets the pais.
	 *
	 * @param pais the new pais
	 */
	public void setPais(Pais pais) {
		this.pais = pais;
	}

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

		result.append("[ ab0482s01: ").append(this.obra).append(" ]");

		result.append(", [ tipdoc085: ").append(this.tipdoc085).append(" ]");

		result.append(", [ numdoc085: ").append(this.numdoc085).append(" ]");

		result.append(", [ fecalt085: ").append(this.fecalt085).append(" ]");

		result.append(", [ tipoprm085: ").append(this.tipoprm085).append(" ]");
		result.append(", [ fecbaj085: ").append(this.fecbaj085).append(" ]");
		result.append(", [ nomprm085: ").append(this.nomprm085).append(" ]");
		result.append(", [ paisprm085: ").append(this.paisprm085).append(" ]");
		result.append(", [ prvprm085: ").append(this.prvprm085).append(" ]");
		result.append(", [ munprm085: ").append(this.munprm085).append(" ]");
		result.append(", [ dmunprm085: ").append(this.dmunprm085).append(" ]");
		result.append(", [ dirprm085: ").append(this.dirprm085).append(" ]");
		result.append(", [ cpoprm085: ").append(this.cpoprm085).append(" ]");
		result.append(", [ ordexp085: ").append(this.ordexp085).append(" ]");
		result.append(", [ usualt085: ").append(this.usualt085).append(" ]");
		result.append(", [ fecmod085: ").append(this.fecmod085).append(" ]");
		result.append(", [ usumod085: ").append(this.usumod085).append(" ]");
		result.append(", [ descprm085: ").append(this.descprm085).append(" ]");
		result.append("}");
		return result.toString();
	}

}
