package com.ejie.ab39a.model;

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

import org.springframework.context.i18n.LocaleContextHolder;

/**
 * Acciones.
 * 
 *  
 */

public class Acciones implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	private Integer idaccion;
	private Elemento elemento;
	private Long orden;
	private String nombreeus;
	private String nombrecas;
	private List<AccionesPg> accionesPgs = new ArrayList<AccionesPg>();

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

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

	/**
	 * Method 'Acciones'.
	 * 
	 * @param idaccion
	 *            Integer idaccion
	 * @param orden
	 *            Long orden
	 * @param nombreeus
	 *            String nombreeus
	 * @param nombrecas
	 *            String nombrecas
	 * @param elemento
	 *            Elemento elemento
	 */
	public Acciones(Integer idaccion, Long orden, String nombreeus, String nombrecas, Elemento elemento) {
		super();
		this.idaccion = idaccion;
		this.elemento = elemento;
		this.orden = orden;
		this.nombreeus = nombreeus;
		this.nombrecas = nombrecas;
	}

	/**
	 * Method 'Acciones'.
	 * 
	 * @param idaccion
	 *            Integer idaccion
	 * @param orden
	 *            Long orden
	 * @param nombreeus
	 *            String nombreeus
	 * @param nombrecas
	 *            String nombrecas
	 * @param elemento
	 *            Elemento elemento
	 * @param accionesPgs
	 *            List<AccionesPg> accionesPgs
	 */
	public Acciones(Integer idaccion, Long orden, String nombreeus, String nombrecas, Elemento elemento,
			List<AccionesPg> accionesPgs) {
		super();

		this.idaccion = idaccion;
		this.elemento = elemento;
		this.orden = orden;
		this.nombreeus = nombreeus;
		this.nombrecas = nombrecas;
		this.accionesPgs = accionesPgs;
	}

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

	public Integer getIdaccion() {
		return this.idaccion;
	}

	/**
	 * Method 'setIdaccion'.
	 *
	 * @param idaccion
	 *            Integer
	 */

	public void setIdaccion(Integer idaccion) {
		this.idaccion = idaccion;
	}

	/**
	 * Method 'getElemento'.
	 *
	 * @return Elemento
	 */
	@JsonIgnore

	public Elemento getElemento() {
		return this.elemento;
	}

	/**
	 * Method 'setElemento'.
	 *
	 * @param elemento
	 *            Elemento
	 */

	public void setElemento(Elemento elemento) {
		this.elemento = elemento;
	}

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

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

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

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

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

	public String getNombreeus() {
		return this.nombreeus;
	}

	/**
	 * Method 'setNombreeus'.
	 *
	 * @param nombreeus
	 *            String
	 */

	public void setNombreeus(String nombreeus) {
		this.nombreeus = nombreeus;
	}

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

	public String getNombreEsEu() {
		String des = "";
		if (Constants.EUSKARA.equals(LocaleContextHolder.getLocale().getLanguage())) {
			des = this.getNombreeus();
		} else {
			des = this.getNombrecas();
		}
		return des;
	}

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

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

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

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

	/**
	 * Method 'getAccionesPgs'.
	 *
	 * @return List
	 */
	@JsonIgnore
	public List<AccionesPg> getAccionesPgs() {
		return this.accionesPgs;
	}

	/**
	 * Method 'setAccionesPgs'.
	 *
	 * @param accionesPgs
	 *            List
	 */
	public void setAccionesPgs(List<AccionesPg> accionesPgs) {
		this.accionesPgs = accionesPgs;
	}

	/**
	 * 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(" [ idaccion: ").append(this.idaccion).append(" ]");
		result.append(", [ orden: ").append(this.orden).append(" ]");
		result.append(", [ nombreeus: ").append(this.nombreeus).append(" ]");
		result.append(", [ nombrecas: ").append(this.nombrecas).append(" ]");
		result.append("}");
		return result.toString();
	}

}
