package com.fitbank.hb.persistence.atm;

import java.io.Serializable;
import java.lang.reflect.Field;
import com.fitbank.common.TransportBean;

/**Clase que implementa la entidad de Hibernate que hace referencia a la tabla TATMSUBESTADOS*/
public class Tatmsubstates implements Serializable,TransportBean,Cloneable{
/** Nombre de la Tabla TATMSUBESTADOS */
public static final String TABLE_NAME = "TATMSUBESTADOS";
/** HashCode asociado con la Instancia*/
private int hashValue = 0;
/** Version de la Clase*/
private static final long serialVersionUID = 1L;
/**
* Clave primaria de la Entidad Tatmsubstates
*/
private TatmsubstatesKey pk;
/**
* Descripcion del subestado
*/
private String descripcion;

/**
* Accion a tomar cuando se presenta el subestado del componente del ATM
*/
private String accion;

/**
* Indica si al registrarse el estado se debe detener el ATM o no
*/
private String detener;

/**
* Indica si al registrarse el estado se debe reversar la transaccion o no
*/
private String reversar;

/**
* Indica si el estado debe ser notificado por mail  o no
*/
private String notificar;

/**
* Texto a presentar en la pantalla del ATM si se presenta el estado
*/
private String texto;

/**
* Indicador de si el estado debe ser registrado cuando se presenta
*/
private String registrar;

/**
* Indicador de si el estado debe mostrarse en la pantalla del ATM
*/
private String mostrar;

/**Contructor por defecto*/
public Tatmsubstates(){}
/**Contructor de Tatmsubstates
@param pPk Clave Primaria del entity
@param pDescripcion Descripcion del subestado
@param pAccion Accion a tomar cuando se presenta el subestado del componente del ATM
*/
public Tatmsubstates(TatmsubstatesKey pPk,String pDescripcion,String pAccion){
 pk=pPk;
 descripcion=pDescripcion;
 accion=pAccion;
}
/**Entrega la Clave primaria de Tatmsubstates
@return El objeto que referencia a la Clave primaria de Tatmsubstates
*/
public TatmsubstatesKey getPk(){
  return pk;
}
/**Fija un nuevo valor a la Clave primaria de Tatmsubstates
@param pPk El objeto que referencia a la nueva Clave primaria de Tatmsubstates
*/
public void setPk(TatmsubstatesKey pPk){
  pk=pPk;
}
public static final String DESCRIPCION="DESCRIPCION";
/**Obtiene el valor de descripcion
@return valor de descripcion*/
public String getDescripcion(){
  return descripcion;
}
/**Fija el valor de descripcion
@param pDescripcion nuevo Valor de descripcion*/
public void setDescripcion(String pDescripcion){
  descripcion=pDescripcion;
}

public static final String ACCION="ACCION";
/**Obtiene el valor de accion
@return valor de accion*/
public String getAccion(){
  return accion;
}
/**Fija el valor de accion
@param pAccion nuevo Valor de accion*/
public void setAccion(String pAccion){
  accion=pAccion;
}

public static final String DETENER="DETENER";
/**Obtiene el valor de detener
@return valor de detener*/
public String getDetener(){
  return detener;
}
/**Fija el valor de detener
@param pDetener nuevo Valor de detener*/
public void setDetener(String pDetener){
  detener=pDetener;
}

public static final String REVERSAR="REVERSAR";
/**Obtiene el valor de reversar
@return valor de reversar*/
public String getReversar(){
  return reversar;
}
/**Fija el valor de reversar
@param pReversar nuevo Valor de reversar*/
public void setReversar(String pReversar){
  reversar=pReversar;
}

public static final String NOTIFICAR="NOTIFICAR";
/**Obtiene el valor de notificar
@return valor de notificar*/
public String getNotificar(){
  return notificar;
}
/**Fija el valor de notificar
@param pNotificar nuevo Valor de notificar*/
public void setNotificar(String pNotificar){
  notificar=pNotificar;
}

public static final String TEXTO="TEXTO";
/**Obtiene el valor de texto
@return valor de texto*/
public String getTexto(){
  return texto;
}
/**Fija el valor de texto
@param pTexto nuevo Valor de texto*/
public void setTexto(String pTexto){
  texto=pTexto;
}

public static final String REGISTRAR="REGISTRAR";
/**Obtiene el valor de registrar
@return valor de registrar*/
public String getRegistrar(){
  return registrar;
}
/**Fija el valor de registrar
@param pRegistrar nuevo Valor de registrar*/
public void setRegistrar(String pRegistrar){
  registrar=pRegistrar;
}

public static final String MOSTRAR="MOSTRAR";
/**Obtiene el valor de mostrar
@return valor de mostrar*/
public String getMostrar(){
  return mostrar;
}
/**Fija el valor de mostrar
@param pMostrar nuevo Valor de mostrar*/
public void setMostrar(String pMostrar){
  mostrar=pMostrar;
}

/**Implementacion de la comparacion de la entidad Tatmsubstates
@param rhs Elemento de Comparacion
@return el resultado de la comparacion
*/
public boolean equals(Object rhs){
    if (rhs == null){return false;}
    if (! (rhs instanceof Tatmsubstates)){return false;}
    Tatmsubstates that = (Tatmsubstates) rhs;
    if (this.getPk() == null || that.getPk() == null){
        return false;}
    return (this.getPk().equals(that.getPk()));
}
/**Implementaci?n del metodo hashCode de la la entidad Tatmsubstates
@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;
}
/**Implementaci?n toString
*/
public String toString() {
	Field[]fs=this.getClass().getDeclaredFields();
	String data="";
	for(Field f:fs){
	 try{	
	 String name=f.getName();
	 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;
	}
/**Implementaci?n de la creaci?n de un bean en blancoTatmsubstates
*/
public Object createInstance() throws Exception{
 Tatmsubstates instance=new Tatmsubstates();	
 instance.setPk(new TatmsubstatesKey());
 return instance;
}
public Object cloneMe() throws Exception{
  Tatmsubstates p=(Tatmsubstates)this.clone();
  p.setPk((TatmsubstatesKey)this.pk.cloneMe());
  return p;
}
}
