package com.fp.persistence.parmas.param;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Column;
import javax.persistence.EntityManager;

import java.io.Serializable;

import javax.persistence.Table;

import com.fp.dto.hb.HibernateBean;
import com.fp.dto.hb.Log;

import java.lang.reflect.Field;

import javax.persistence.Transient;

import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;

/**Clase que implementa la entidad de Hibernate que hace referencia a la tabla TARMTIPOSANCION*/
@Entity(name="TarmTipoSancion")
@Table(name="TARMTIPOSANCION")
public class TarmTipoSancion extends com.fp.dto.AbstractDataTransport implements Serializable,HibernateBean,Cloneable, Log {
/**
* HashCode asociado con la Instancia
*/
@Transient
private int hashValue = 0;
/**
* Version de la Clase
*/
private static final long serialVersionUID = 1L;
/**
* Clave primaria de la Entidad TarmTipoSancion
*/
@Id
@Column(name="CTIPOSANCION" ,nullable=false, updatable=false)
@GenericGenerator(name = "seq_id", strategy = "com.fp.general.keygen.SequenceKey", parameters = {
        @Parameter(name = "name", value = "TARMTIPOSANCION"),//campo secuencial de la tabla
        @Parameter(name = "type", value = "java.lang.String"),// tipo de dato
        @Parameter(name = "fill", value = "0"),
        @Parameter(name = "length", value = "6")})
    @GeneratedValue(generator = "seq_id")
private String pk;
@Column(name="CLASE", nullable=false)

/**
* Codigo de catalogo  correspondiente a la clase
*/
private String clase;

@Column(name="CLASECODIGO", nullable=false)

/**
* Codigo de catalogcode  correspondiente a la clase
*/
private String clasecodigo;

@Column(name="FALTA", nullable=false)

/**
* Codigo de catalogo  correspondiente a la falta
*/
private String falta;

@Column(name="FALTACODIGO", nullable=false)

/**
* Codigo de catalogcode  correspondiente a la falta
*/
private String faltacodigo;

@Column(name="TIPOFALTA", nullable=false)

/**
* Codigo de catalogo  correspondiente al tipo de falta
*/
private String tipofalta;

@Column(name="TIPOFALTACODIGO", nullable=false)

/**
* Codigo de catalogcode  correspondiente al tipo de falta
*/
private String tipofaltacodigo;

@Column(name="TRAMITE", nullable=false)

/**
* Codigo de catalogo  correspondiente al tramite
*/
private String tramite;

@Column(name="TRAMITECODIGO", nullable=false)

/**
* Codigo de catalogcode  correspondiente al tramite
*/
private String tramitecodigo;

@Column(name="SANCION", nullable=false)

/**
* Codigo de catalogo  correspondiente a la sancion
*/
private String sancion;

@Column(name="SANCIONCODIGO", nullable=false)

/**
* Codigo de catalogcode  correspondiente a la sancion
*/
private String sancioncodigo;

@Column(name="TIEMPO", nullable=false)

/**
* Codigo de catalogo  correspondiente al tiempo de la sancion en dias
*/
private String tiempo;

@Column(name="TIEMPOCODIGO", nullable=false)

/**
* Codigo de catalogcode  correspondiente al tiempo de vigencia de la sancion en dias
*/
private String tiempocodigo;

/**Contructor por defecto*/
public TarmTipoSancion(){
}
/**Contructor de TarmTipoSancion
@param pPk Clave Primaria del entity
@param pClase Codigo de catalogo  correspondiente a la clase
@param pClasecodigo Codigo de catalogcode  correspondiente a la clase
@param pFalta Codigo de catalogo  correspondiente a la falta
@param pFaltacodigo Codigo de catalogcode  correspondiente a la falta
@param pTipofalta Codigo de catalogo  correspondiente al tipo de falta
@param pTipofaltacodigo Codigo de catalogcode  correspondiente al tipo de falta
@param pTramite Codigo de catalogo  correspondiente al tramite
@param pTramitecodigo Codigo de catalogcode  correspondiente al tramite
@param pSancion Codigo de catalogo  correspondiente a la sancion
@param pSancioncodigo Codigo de catalogcode  correspondiente a la sancion
@param pTiempo Codigo de catalogo  correspondiente al tiempo de la sancion en dias
@param pTiempocodigo Codigo de catalogcode  correspondiente al tiempo de vigencia de la sancion en dias
*/
public TarmTipoSancion(String pPk,String pClase,String pClasecodigo,String pFalta,String pFaltacodigo,String pTipofalta,String pTipofaltacodigo,String pTramite,String pTramitecodigo,String pSancion,String pSancioncodigo,String pTiempo,String pTiempocodigo){
 this();
 pk=pPk;
 clase=pClase;
 clasecodigo=pClasecodigo;
 falta=pFalta;
 faltacodigo=pFaltacodigo;
 tipofalta=pTipofalta;
 tipofaltacodigo=pTipofaltacodigo;
 tramite=pTramite;
 tramitecodigo=pTramitecodigo;
 sancion=pSancion;
 sancioncodigo=pSancioncodigo;
 tiempo=pTiempo;
 tiempocodigo=pTiempocodigo;
}
/**
* Metodo que entrega datos de la tabla dada la clave primaria.
* @param pEntityManager referencia de la session a obtener datos del bean.
* @param pKey Caleve primaria del bean.
* @return TarmTipoSancion
*/
public static TarmTipoSancion find(EntityManager pEntityManager,Object pKey) throws Exception{
    TarmTipoSancion obj = pEntityManager.find(TarmTipoSancion.class,pKey);
    return obj;
}
/**Entrega la Clave primaria de TarmTipoSancion
@return El objeto que referencia a la Clave primaria de TarmTipoSancion
*/
public String getPk(){
  return pk;
}
/**Fija un nuevo valor a la Clave primaria de TarmTipoSancion
@param pPk El objeto que referencia a la nueva Clave primaria de TarmTipoSancion
*/
public void setPk(String pPk){
  pk=pPk;
}
/**Obtiene el valor de clase
@return valor de clase*/
public String getClase(){
  return clase;
}
/**Fija el valor de clase
@param pClase nuevo Valor de clase*/
public void setClase(String pClase){
  clase=pClase;
}

/**Obtiene el valor de clasecodigo
@return valor de clasecodigo*/
public String getClasecodigo(){
  return clasecodigo;
}
/**Fija el valor de clasecodigo
@param pClasecodigo nuevo Valor de clasecodigo*/
public void setClasecodigo(String pClasecodigo){
  clasecodigo=pClasecodigo;
}

/**Obtiene el valor de falta
@return valor de falta*/
public String getFalta(){
  return falta;
}
/**Fija el valor de falta
@param pFalta nuevo Valor de falta*/
public void setFalta(String pFalta){
  falta=pFalta;
}

/**Obtiene el valor de faltacodigo
@return valor de faltacodigo*/
public String getFaltacodigo(){
  return faltacodigo;
}
/**Fija el valor de faltacodigo
@param pFaltacodigo nuevo Valor de faltacodigo*/
public void setFaltacodigo(String pFaltacodigo){
  faltacodigo=pFaltacodigo;
}

/**Obtiene el valor de tipofalta
@return valor de tipofalta*/
public String getTipofalta(){
  return tipofalta;
}
/**Fija el valor de tipofalta
@param pTipofalta nuevo Valor de tipofalta*/
public void setTipofalta(String pTipofalta){
  tipofalta=pTipofalta;
}

/**Obtiene el valor de tipofaltacodigo
@return valor de tipofaltacodigo*/
public String getTipofaltacodigo(){
  return tipofaltacodigo;
}
/**Fija el valor de tipofaltacodigo
@param pTipofaltacodigo nuevo Valor de tipofaltacodigo*/
public void setTipofaltacodigo(String pTipofaltacodigo){
  tipofaltacodigo=pTipofaltacodigo;
}

/**Obtiene el valor de tramite
@return valor de tramite*/
public String getTramite(){
  return tramite;
}
/**Fija el valor de tramite
@param pTramite nuevo Valor de tramite*/
public void setTramite(String pTramite){
  tramite=pTramite;
}

/**Obtiene el valor de tramitecodigo
@return valor de tramitecodigo*/
public String getTramitecodigo(){
  return tramitecodigo;
}
/**Fija el valor de tramitecodigo
@param pTramitecodigo nuevo Valor de tramitecodigo*/
public void setTramitecodigo(String pTramitecodigo){
  tramitecodigo=pTramitecodigo;
}

/**Obtiene el valor de sancion
@return valor de sancion*/
public String getSancion(){
  return sancion;
}
/**Fija el valor de sancion
@param pSancion nuevo Valor de sancion*/
public void setSancion(String pSancion){
  sancion=pSancion;
}

/**Obtiene el valor de sancioncodigo
@return valor de sancioncodigo*/
public String getSancioncodigo(){
  return sancioncodigo;
}
/**Fija el valor de sancioncodigo
@param pSancioncodigo nuevo Valor de sancioncodigo*/
public void setSancioncodigo(String pSancioncodigo){
  sancioncodigo=pSancioncodigo;
}

/**Obtiene el valor de tiempo
@return valor de tiempo*/
public String getTiempo(){
  return tiempo;
}
/**Fija el valor de tiempo
@param pTiempo nuevo Valor de tiempo*/
public void setTiempo(String pTiempo){
  tiempo=pTiempo;
}

/**Obtiene el valor de tiempocodigo
@return valor de tiempocodigo*/
public String getTiempocodigo(){
  return tiempocodigo;
}
/**Fija el valor de tiempocodigo
@param pTiempocodigo nuevo Valor de tiempocodigo*/
public void setTiempocodigo(String pTiempocodigo){
  tiempocodigo=pTiempocodigo;
}

public boolean equals(Object rhs){
    if (rhs == null)return false;
    if (! (rhs instanceof TarmTipoSancion))return false;
    TarmTipoSancion that = (TarmTipoSancion) rhs;
    if (this.getPk() == null || that.getPk() == null)
        return false;
    return (this.getPk().equals(that.getPk()));
}
/**Implementacion del metodo hashCode de la la entidad TarmTipoSancion
@return el hashCode la instancia
*/
public int hashCode()    {
    if (this.hashValue == 0){
        int result = 17;
        if (this.getPk() == null){
            result = super.hashCode();
        }else{
            result = this.getPk().hashCode();
        }
        this.hashValue = result;
    }
    return this.hashValue;
}
/**Implementacion toString
*/
public String toString() {
	Field[]fs=this.getClass().getDeclaredFields();
	String data="";
	for(Field f:fs){
	 try{	
	 String name=f.getName();
   if(f.getType().getName().compareTo("java.util.Set")==0)continue;
	 if(name.compareTo("hashValue")==0||name.compareTo("serialVersionUID")==0)continue;
		data+=name+"="+f.get(this)+";";
	 }catch(Exception e){
		 continue;
	 }
		}
		if(data.compareTo("")==0){
		data=super.toString();
		}
	return data;
	}
/**Implementacion de la creacion de un bean en blanco TarmTipoSancion
*/
public Object createInstance(){
 TarmTipoSancion instance=new TarmTipoSancion();	
 return instance;
}
/**Clona la entidad TarmTipoSancion
@see com.fp.dto.hb.HibernateBean#cloneMe()
*/
public Object cloneMe() throws CloneNotSupportedException{
  TarmTipoSancion p=(TarmTipoSancion)this.clone();
  return p;
}
}
