package com.ejie.ab39a.model;

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

/**
 * Elemento.
 * 
 *  
 */

public class Elemento implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	private Long idElemento;
	private Long orden;
	private Long nivel;
	private Long ponderacion;
	private Integer tieneelebi;
	private String nombre;
	private String nombrecas;
	private Long idEje;
	private Long idElementopadre;
	private String helburu;
	private String helburucas;
	private List<ElementosPe> elementosPes = new ArrayList<ElementosPe>();
	private List<Acciones> accioneses = new ArrayList<Acciones>();

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

	/**
	 * Method 'Elemento'.
	 * 
	 * @param idElemento
	 *            Long idElemento
	 */
	public Elemento(Long idElemento) {
		super();
		this.idElemento = idElemento;
	}

	/**
	 * Method 'Elemento'.
	 * 
	 * @param idElemento
	 *            Long idElemento
	 * @param orden
	 *            Long orden
	 * @param nivel
	 *            Long nivel
	 * @param ponderacion
	 *            Long ponderacion
	 * @param tieneelebi
	 *            Integer tieneelebi
	 * @param nombre
	 *            String nombre
	 * @param nombrecas
	 *            String nombrecas
	 * @param idEje
	 *            Long idEje
	 * @param idElementopadre
	 *            Long idElementopadre
	 * @param helburu
	 *            String helburu
	 * @param helburucas
	 *            String helburucas
	 */
	public Elemento(Long idElemento, Long orden, Long nivel, Long ponderacion, Integer tieneelebi, String nombre,
			String nombrecas, Long idEje, Long idElementopadre, String helburu, String helburucas) {
		super();
		this.idElemento = idElemento;
		this.orden = orden;
		this.nivel = nivel;
		this.ponderacion = ponderacion;
		this.tieneelebi = tieneelebi;
		this.nombre = nombre;
		this.nombrecas = nombrecas;
		this.idEje = idEje;
		this.idElementopadre = idElementopadre;
		this.helburu = helburu;
		this.helburucas = helburucas;
	}

	/**
	 * Method 'Elemento'.
	 * 
	 * @param idElemento
	 *            Long idElemento
	 * @param orden
	 *            Long orden
	 * @param nivel
	 *            Long nivel
	 * @param ponderacion
	 *            Long ponderacion
	 * @param tieneelebi
	 *            Integer tieneelebi
	 * @param nombre
	 *            String nombre
	 * @param nombrecas
	 *            String nombrecas
	 * @param idEje
	 *            Long idEje
	 * @param idElementopadre
	 *            Long idElementopadre
	 * @param helburu
	 *            String helburu
	 * @param helburucas
	 *            String helburucas
	 * @param elementosPes
	 *            List<ElementosPe> elementosPes
	 * @param accioneses
	 *            List<Acciones> accioneses
	 */
	public Elemento(Long idElemento, Long orden, Long nivel, Long ponderacion, Integer tieneelebi, String nombre,
			String nombrecas, Long idEje, Long idElementopadre, String helburu, String helburucas,
			List<ElementosPe> elementosPes, List<Acciones> accioneses) {
		super();

		this.idElemento = idElemento;
		this.orden = orden;
		this.nivel = nivel;
		this.ponderacion = ponderacion;
		this.tieneelebi = tieneelebi;
		this.nombre = nombre;
		this.nombrecas = nombrecas;
		this.idEje = idEje;
		this.idElementopadre = idElementopadre;
		this.helburu = helburu;
		this.helburucas = helburucas;
		this.elementosPes = elementosPes;
		this.accioneses = accioneses;
	}

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

	public Long getIdElemento() {
		return this.idElemento;
	}

	/**
	 * Method 'setIdElemento'.
	 *
	 * @param idElemento
	 *            Long
	 */

	public void setIdElemento(Long idElemento) {
		this.idElemento = idElemento;
	}

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

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

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

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

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

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

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

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

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

	public Long getPonderacion() {
		return this.ponderacion;
	}

	/**
	 * Method 'setPonderacion'.
	 *
	 * @param ponderacion
	 *            Long
	 */

	public void setPonderacion(Long ponderacion) {
		this.ponderacion = ponderacion;
	}

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

	public Integer getTieneelebi() {
		return this.tieneelebi;
	}

	/**
	 * Method 'setTieneelebi'.
	 *
	 * @param tieneelebi
	 *            Integer
	 */

	public void setTieneelebi(Integer tieneelebi) {
		this.tieneelebi = tieneelebi;
	}

	/**
	 * 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 'getIdEje'.
	 *
	 * @return Long
	 */

	public Long getIdEje() {
		return this.idEje;
	}

	/**
	 * Method 'setIdEje'.
	 *
	 * @param idEje
	 *            Long
	 */

	public void setIdEje(Long idEje) {
		this.idEje = idEje;
	}

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

	public Long getIdElementopadre() {
		return this.idElementopadre;
	}

	/**
	 * Method 'setIdElementopadre'.
	 *
	 * @param idElementopadre
	 *            Long
	 */

	public void setIdElementopadre(Long idElementopadre) {
		this.idElementopadre = idElementopadre;
	}

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

	public String getHelburu() {
		return this.helburu;
	}

	/**
	 * Method 'setHelburu'.
	 *
	 * @param helburu
	 *            String
	 */

	public void setHelburu(String helburu) {
		this.helburu = helburu;
	}

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

	public String getHelburucas() {
		return this.helburucas;
	}

	/**
	 * Method 'setHelburucas'.
	 *
	 * @param helburucas
	 *            String
	 */

	public void setHelburucas(String helburucas) {
		this.helburucas = helburucas;
	}

	/**
	 * Method 'getElementosPes'.
	 *
	 * @return List
	 */
	@JsonIgnore
	public List<ElementosPe> getElementosPes() {
		return this.elementosPes;
	}

	/**
	 * Method 'setElementosPes'.
	 *
	 * @param elementosPes
	 *            List
	 */
	public void setElementosPes(List<ElementosPe> elementosPes) {
		this.elementosPes = elementosPes;
	}

	/**
	 * Method 'getAccioneses'.
	 *
	 * @return List
	 */
	@JsonIgnore
	public List<Acciones> getAccioneses() {
		return this.accioneses;
	}

	/**
	 * Method 'setAccioneses'.
	 *
	 * @param accioneses
	 *            List
	 */
	public void setAccioneses(List<Acciones> accioneses) {
		this.accioneses = accioneses;
	}

	/**
	 * 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(" [ idElemento: ").append(this.idElemento).append(" ]");
		result.append(", [ orden: ").append(this.orden).append(" ]");
		result.append(", [ nivel: ").append(this.nivel).append(" ]");
		result.append(", [ ponderacion: ").append(this.ponderacion).append(" ]");
		result.append(", [ tieneelebi: ").append(this.tieneelebi).append(" ]");
		result.append(", [ nombre: ").append(this.nombre).append(" ]");
		result.append(", [ nombrecas: ").append(this.nombrecas).append(" ]");
		result.append(", [ idEje: ").append(this.idEje).append(" ]");
		result.append(", [ idElementopadre: ").append(this.idElementopadre).append(" ]");
		result.append(", [ helburu: ").append(this.helburu).append(" ]");
		result.append(", [ helburucas: ").append(this.helburucas).append(" ]");
		result.append("}");
		return result.toString();
	}

}
