package com.ejie.y42b.model;


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

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.JsonDateDeserializer;
import com.ejie.x38.control.JsonDateSerializer;

/**
 *  * Grupo  
 *  
 */

public class Grupo  implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
            private String grupoId;
            private BigDecimal nivel;
            private String nombreEs;
            private String nombreEu;
            private String grupoPadreId;
            private String activa;
            private String usuultmod;
            private Date fecultmod;
            private List<Entidad> entidads = new ArrayList<Entidad>();

	/** Method 'Grupo'.
	*
	*/
    public Grupo() {
    }
    /** Method 'Grupo'.
    * @param grupoId String
    * @param nivel BigDecimal
    * @param nombreEs String
    * @param nombreEu String
    * @param grupoPadreId String
    * @param activa String
    * @param usuultmod String
    * @param fecultmod Date
    */
    public Grupo(String grupoId, BigDecimal nivel, String nombreEs, String nombreEu, String grupoPadreId, String activa, String usuultmod, Date fecultmod ) {	
        this.grupoId = grupoId;
        this.nivel = nivel;
        this.nombreEs = nombreEs;
        this.nombreEu = nombreEu;
        this.grupoPadreId = grupoPadreId;
        this.activa = activa;
        this.usuultmod = usuultmod;
        this.fecultmod = fecultmod;
    }

    /** Method 'Grupo'.
    * @param grupoId String
    * @param nivel BigDecimal
    * @param nombreEs String
    * @param nombreEu String
    * @param grupoPadreId String
    * @param activa String
    * @param usuultmod String
    * @param fecultmod Date
    * @param entidads List<Entidad>
    */
   public Grupo(String grupoId, BigDecimal nivel, String nombreEs, String nombreEu, String grupoPadreId, String activa, String usuultmod, Date fecultmod, List<Entidad> entidads) {	

           this.grupoId = grupoId;
           this.nivel = nivel;
           this.nombreEs = nombreEs;
           this.nombreEu = nombreEu;
           this.grupoPadreId = grupoPadreId;
           this.activa = activa;
           this.usuultmod = usuultmod;
           this.fecultmod = fecultmod;
           this.entidads = entidads;
    }

    /**
	 * Method 'getGrupoId'.
	 *
	 * @return String
	 */
	
	
	public String getGrupoId() {
		return this.grupoId;
	}

	/**
	 * Method 'setGrupoId'.
	 *
	 * @param grupoId String
	 * @return
     */
	
	public void setGrupoId(String grupoId) {
		this.grupoId = grupoId;
	}
    /**
	 * Method 'getNivel'.
	 *
	 * @return BigDecimal
	 */
	
	
	public BigDecimal getNivel() {
		return this.nivel;
	}

	/**
	 * Method 'setNivel'.
	 *
	 * @param nivel BigDecimal
	 * @return
     */
	
	public void setNivel(BigDecimal nivel) {
		this.nivel = nivel;
	}
    /**
	 * Method 'getNombreEs'.
	 *
	 * @return String
	 */
	
	
	public String getNombreEs() {
		return this.nombreEs;
	}

	/**
	 * Method 'setNombreEs'.
	 *
	 * @param nombreEs String
	 * @return
     */
	
	public void setNombreEs(String nombreEs) {
		this.nombreEs = nombreEs;
	}
    /**
	 * Method 'getNombreEu'.
	 *
	 * @return String
	 */
	
	
	public String getNombreEu() {
		return this.nombreEu;
	}

	/**
	 * Method 'setNombreEu'.
	 *
	 * @param nombreEu String
	 * @return
     */
	
	public void setNombreEu(String nombreEu) {
		this.nombreEu = nombreEu;
	}
    /**
	 * Method 'getGrupoPadreId'.
	 *
	 * @return String
	 */
	
	
	public String getGrupoPadreId() {
		return this.grupoPadreId;
	}

	/**
	 * Method 'setGrupoPadreId'.
	 *
	 * @param grupoPadreId String
	 * @return
     */
	
	public void setGrupoPadreId(String grupoPadreId) {
		this.grupoPadreId = grupoPadreId;
	}
    /**
	 * Method 'getActiva'.
	 *
	 * @return String
	 */
	
	
	public String getActiva() {
		return this.activa;
	}

	/**
	 * Method 'setActiva'.
	 *
	 * @param activa String
	 * @return
     */
	
	public void setActiva(String activa) {
		this.activa = activa;
	}
    /**
	 * Method 'getUsuultmod'.
	 *
	 * @return String
	 */
	
	
	public String getUsuultmod() {
		return this.usuultmod;
	}

	/**
	 * Method 'setUsuultmod'.
	 *
	 * @param usuultmod String
	 * @return
     */
	
	public void setUsuultmod(String usuultmod) {
		this.usuultmod = usuultmod;
	}
    /**
	 * Method 'getFecultmod'.
	 *
	 * @return Date
	 */
	
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFecultmod() {
		return this.fecultmod;
	}

	/**
	 * Method 'setFecultmod'.
	 *
	 * @param fecultmod Date
	 * @return
     */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFecultmod(Date fecultmod) {
		this.fecultmod = fecultmod;
	}
	/**
	 * Method 'getEntidads'.
	 *
	 * @return List
	 */
	@JsonIgnore()
	public List<Entidad> getEntidads() {
		return this.entidads;
	}
	
	/**
	 * Method 'setEntidads'.
	 *
	 * @param entidads List
	 * @return
	 */
	public void setEntidads(List<Entidad> entidads) {
		this.entidads = entidads;
	}

	/**
	 * 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 { " ); 
		result.append(" [ grupoId: ").append(this.grupoId).append(" ]");
		result.append(", [ nivel: ").append(this.nivel).append(" ]");
		result.append(", [ nombreEs: ").append(this.nombreEs).append(" ]");
		result.append(", [ nombreEu: ").append(this.nombreEu).append(" ]");
		result.append(", [ grupoPadreId: ").append(this.grupoPadreId).append(" ]");
		result.append(", [ activa: ").append(this.activa).append(" ]");
		result.append(", [ usuultmod: ").append(this.usuultmod).append(" ]");
		result.append(", [ fecultmod: ").append(this.fecultmod).append(" ]");
		result.append("}");
		return result.toString();
	}


}

