package com.ejie.ab39a.model;

import com.fasterxml.jackson.annotation.JsonIgnore;
import java.util.ArrayList;
import java.util.List;

/**
 * ElementosPg.
 * 
 *  
 */

public class ElementosPg extends ElementosArbol implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	private Integer codelempg;
	private ElementosPg elementosPg;
	private ElementosPe elementosPe;
	private PlanesGestion planesGestion;
	private Long orden;
	private String nombre;
	private String nombrecas;
	private Long nivel;
	private Integer codplang;
	private List<AccionesPg> accionespg = new ArrayList<AccionesPg>();
	private Long tieneValor;
	private Long puedeAccion;
	private Long puedeNuevoElem;
	private Long elemBase;
	private List<ElementosPg> elementosPgs = new ArrayList<ElementosPg>();
	private Long tieneSiNo;

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

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

	/**
	 * Method 'ElementosPg'.
	 * 
	 * @param codelempg
	 *            Integer codelempg
	 * @param orden
	 *            Long orden
	 * @param nombre
	 *            String nombre
	 * @param nombrecas
	 *            String nombrecas
	 * @param nivel
	 *            Long nivel
	 * @param elementosPg
	 *            ElementosPg elementosPg
	 * @param elementosPe
	 *            ElementosPe elementosPe
	 * @param planesGestion
	 *            PlanesGestion planesGestion
	 */
	public ElementosPg(Integer codelempg, Long orden, String nombre, String nombrecas, Long nivel,
			ElementosPg elementosPg, ElementosPe elementosPe, PlanesGestion planesGestion) {
		super();
		this.codelempg = codelempg;
		this.elementosPg = elementosPg;
		this.elementosPe = elementosPe;
		this.planesGestion = planesGestion;
		this.orden = orden;
		this.nombre = nombre;
		this.nombrecas = nombrecas;
		this.nivel = nivel;
	}

	/**
	 * Method 'ElementosPe'.
	 * 
	 * @param codPlane
	 *            Long codPlane
	 * @param idElemento
	 *            Long idElemento
	 * @param orden
	 *            Long orden
	 * @param nivel
	 *            Long nivel
	 * @param nombre
	 *            String nombre
	 * @param nombrecas
	 *            String nombrecas
	 * @param helburu
	 *            String helburu
	 * @param helburucas
	 *            String helburucas
	 * @param elementoPadre
	 *            Long elementoPadre
	 * @param elemBase
	 *            Long elemBase
	 * @param puedeAccion
	 *            Long puedeAccion
	 * @param puedeNuevoElem
	 *            Long puedeNuevoElem
	 * @param tieneValor
	 *            Long tieneValor
	 */
	public ElementosPg(Long codPlane, Long idElemento, Long orden, Long nivel, String nombre, String nombrecas,
			String helburu, String helburucas, Long elementoPadre, Long elemBase, Long puedeAccion, Long puedeNuevoElem,
			Long tieneValor) {
		super(idElemento, orden, nivel, nombre, nombrecas, helburu, helburucas, elementoPadre, codPlane);
		this.elemBase = elemBase;
		this.puedeAccion = puedeAccion;
		this.puedeNuevoElem = puedeNuevoElem;
		this.tieneValor = tieneValor;
	}

	/**
	 * Method 'ElementosPg'.
	 * 
	 * @param codelempg
	 *            Integer codelempg
	 * @param orden
	 *            Long orden
	 * @param nombre
	 *            String nombre
	 * @param nombrecas
	 *            String nombrecas
	 * @param nivel
	 *            Long nivel
	 * @param elementosPg
	 *            ElementosPg elementosPg
	 * @param elementosPe
	 *            ElementosPe elementosPe
	 * @param planesGestion
	 *            PlanesGestion planesGestion
	 * @param elementosPgs
	 *            List<ElementosPg> elementosPgs
	 */
	public ElementosPg(Integer codelempg, Long orden, String nombre, String nombrecas, Long nivel,
			ElementosPg elementosPg, ElementosPe elementosPe, PlanesGestion planesGestion,
			List<ElementosPg> elementosPgs) {
		super();

		this.codelempg = codelempg;
		this.elementosPg = elementosPg;
		this.elementosPe = elementosPe;
		this.planesGestion = planesGestion;
		this.orden = orden;
		this.nombre = nombre;
		this.nombrecas = nombrecas;
		this.nivel = nivel;
		this.elementosPgs = elementosPgs;
	}

	/**
	 * Method 'getCodelempg'.
	 *
	 * @return Integer
	 */

	public Integer getCodelempg() {
		return this.codelempg;
	}

	/**
	 * Method 'setCodelempg'.
	 *
	 * @param codelempg
	 *            Integer
	 */

	public void setCodelempg(Integer codelempg) {
		this.codelempg = codelempg;
	}

	/**
	 * Method 'getElementosPg'.
	 *
	 * @return ElementosPg
	 */
	@JsonIgnore

	public ElementosPg getElementosPg() {
		return this.elementosPg;
	}

	/**
	 * Method 'setElementosPg'.
	 *
	 * @param elementosPg
	 *            ElementosPg
	 */

	public void setElementosPg(ElementosPg elementosPg) {
		this.elementosPg = elementosPg;
	}

	/**
	 * Method 'getElementosPe'.
	 *
	 * @return ElementosPe
	 */
	@JsonIgnore

	public ElementosPe getElementosPe() {
		return this.elementosPe;
	}

	/**
	 * Method 'setElementosPe'.
	 *
	 * @param elementosPe
	 *            ElementosPe
	 */

	public void setElementosPe(ElementosPe elementosPe) {
		this.elementosPe = elementosPe;
	}

	/**
	 * Method 'getPlanesGestion'.
	 *
	 * @return PlanesGestion
	 */
	@JsonIgnore

	public PlanesGestion getPlanesGestion() {
		return this.planesGestion;
	}

	/**
	 * Method 'setPlanesGestion'.
	 *
	 * @param planesGestion
	 *            PlanesGestion
	 */

	public void setPlanesGestion(PlanesGestion planesGestion) {
		this.planesGestion = planesGestion;
	}

	/**
	 * Method 'getOrden'.
	 *
	 * @return Long
	 */

	public Long getOrden() {
		return this.orden;
	}

	/**
	 * Method 'setOrden'.
	 *
	 * @param orden
	 *            Long
	 */

	public void setOrden(Long orden) {
		this.orden = orden;
	}

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

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

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

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

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

	public String getNombrecas() {
		return this.nombrecas;
	}

	/**
	 * Method 'setNombrecas'.
	 *
	 * @param nombrecas
	 *            String
	 */

	public void setNombrecas(String nombrecas) {
		this.nombrecas = nombrecas;
	}

	/**
	 * Method 'getNivel'.
	 *
	 * @return Long
	 */

	public Long getNivel() {
		return this.nivel;
	}

	/**
	 * Method 'setNivel'.
	 *
	 * @param nivel
	 *            Long
	 */

	public void setNivel(Long nivel) {
		this.nivel = nivel;
	}

	/**
	 * Method 'getElementosPgs'.
	 *
	 * @return List
	 */
	@JsonIgnore
	public List<ElementosPg> getElementosPgs() {
		return this.elementosPgs;
	}

	/**
	 * Method 'setElementosPgs'.
	 *
	 * @param elementosPgs
	 *            List
	 */
	public void setElementosPgs(List<ElementosPg> elementosPgs) {
		this.elementosPgs = elementosPgs;
	}

	/**
	 * 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(" [ codelempg: ").append(this.codelempg).append(" ]");
		result.append(", [ orden: ").append(this.orden).append(" ]");
		result.append(", [ nombre: ").append(this.nombre).append(" ]");
		result.append(", [ nombrecas: ").append(this.nombrecas).append(" ]");
		result.append(", [ nivel: ").append(this.nivel).append(" ]");
		result.append(", [ codplang: ").append(this.codplang).append(" ]");
		result.append(", [ elemBase: ").append(this.elemBase).append(" ]");
		result.append("}");
		return result.toString();
	}

	/**
	 * Method 'getCodplang'.
	 * 
	 * @return Long
	 */
	public Integer getCodplang() {
		return this.codplang;
	}

	/**
	 * Method 'setCodplang'.
	 * 
	 * @param codplang
	 *            Long
	 */
	public void setCodplang(Integer codplang) {
		this.codplang = codplang;
	}

	/**
	 * Method 'getElemBase'.
	 * 
	 * @return Long
	 */
	public Long getElemBase() {
		return this.elemBase;
	}

	/**
	 * Method 'setElemBase'.
	 * 
	 * @param elemBase
	 *            Long
	 */
	public void setElemBase(Long elemBase) {
		this.elemBase = elemBase;
	}

	/**
	 * 
	 * @return List<AccionesPg>
	 */
	public List<AccionesPg> getAccionespg() {
		return accionespg;
	}

	/**
	 * 
	 * @param accionespg
	 *            List<AccionesPg>
	 */
	public void setAccionespg(List<AccionesPg> accionespg) {
		this.accionespg = accionespg;
	}

	/**
	 * 
	 * @return Long
	 */
	public Long getTieneValor() {
		return tieneValor;
	}

	/**
	 * 
	 * @param tieneValor
	 *            Long
	 */
	public void setTieneValor(Long tieneValor) {
		this.tieneValor = tieneValor;
	}

	/**
	 * 
	 * @return Long
	 */
	public Long getPuedeAccion() {
		return puedeAccion;
	}

	/**
	 * 
	 * @param puedeAccion
	 *            Long
	 */
	public void setPuedeAccion(Long puedeAccion) {
		this.puedeAccion = puedeAccion;
	}

	/**
	 * 
	 * @return Long
	 */
	public Long getPuedeNuevoElem() {
		return puedeNuevoElem;
	}

	/**
	 * 
	 * @param puedeNuevoElem
	 *            Long
	 */
	public void setPuedeNuevoElem(Long puedeNuevoElem) {
		this.puedeNuevoElem = puedeNuevoElem;
	}

	/**
	 * 
	 * @return Long
	 */
	public Long getTieneSiNo() {
		return this.tieneSiNo;
	}

	/**
	 * 
	 * @param tieneSiNo
	 *            Long
	 */
	public void setTieneSiNo(Long tieneSiNo) {
		this.tieneSiNo = tieneSiNo;
	}

}
