package com.fitbank.hb.persistence.uci;

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

/**Clase que implementa la entidad de Hibernate que hace referencia a la tabla TDISPOSITIVOMENSAJES*/
public class Tmessagedevice implements Serializable,TransportBean,Cloneable{
/** Nombre de la Tabla TDISPOSITIVOMENSAJES */
public static final String TABLE_NAME = "TDISPOSITIVOMENSAJES";
/** HashCode asociado con la Instancia*/
private int hashValue = 0;
/** Version de la Clase*/
private static final long serialVersionUID = 1L;
/**
* Clave primaria de la Entidad Tmessagedevice
*/
private TmessagedeviceKey pk;
/**
* Codigo del mensaje. Depende del tipo de mensajeria del canal.
*/
private String codigomensaje;

/**
* Indica si el mensaje fue de entrada (E) o salida (S)
*/
private String flujo;

/**
* Codigo de transaccion que representa el mensaje
*/
private String ctransaccion;

/**
* Campo que contiene el texto del mensaje
*/
private String mensaje;

/**
* Contiene el tipo de mensaje que puede ser RQ=requerimiento, RE=respuesta y ST=estado
*/
private String tipomensaje;

/**
* Manejo de optimistic loking
*/
private Integer versioncontrol;

/**Contructor por defecto*/
public Tmessagedevice(){}
/**Contructor de Tmessagedevice
@param pPk Clave Primaria del entity
@param pCodigomensaje Codigo del mensaje. Depende del tipo de mensajeria del canal.
@param pFlujo Indica si el mensaje fue de entrada (E) o salida (S)
@param pMensaje Campo que contiene el texto del mensaje
@param pTipomensaje Contiene el tipo de mensaje que puede ser RQ=requerimiento, RE=respuesta y ST=estado
*/
public Tmessagedevice(TmessagedeviceKey pPk,String pCodigomensaje,String pFlujo,String pMensaje,String pTipomensaje){
 pk=pPk;
 codigomensaje=pCodigomensaje;
 flujo=pFlujo;
 mensaje=pMensaje;
 tipomensaje=pTipomensaje;
}
/**Entrega la Clave primaria de Tmessagedevice
@return El objeto que referencia a la Clave primaria de Tmessagedevice
*/
public TmessagedeviceKey getPk(){
  return pk;
}
/**Fija un nuevo valor a la Clave primaria de Tmessagedevice
@param pPk El objeto que referencia a la nueva Clave primaria de Tmessagedevice
*/
public void setPk(TmessagedeviceKey pPk){
  pk=pPk;
}
public static final String CODIGOMENSAJE="CODIGOMENSAJE";
/**Obtiene el valor de codigomensaje
@return valor de codigomensaje*/
public String getCodigomensaje(){
  return codigomensaje;
}
/**Fija el valor de codigomensaje
@param pCodigomensaje nuevo Valor de codigomensaje*/
public void setCodigomensaje(String pCodigomensaje){
  codigomensaje=pCodigomensaje;
}

public static final String FLUJO="FLUJO";
/**Obtiene el valor de flujo
@return valor de flujo*/
public String getFlujo(){
  return flujo;
}
/**Fija el valor de flujo
@param pFlujo nuevo Valor de flujo*/
public void setFlujo(String pFlujo){
  flujo=pFlujo;
}

public static final String CTRANSACCION="CTRANSACCION";
/**Obtiene el valor de ctransaccion
@return valor de ctransaccion*/
public String getCtransaccion(){
  return ctransaccion;
}
/**Fija el valor de ctransaccion
@param pCtransaccion nuevo Valor de ctransaccion*/
public void setCtransaccion(String pCtransaccion){
  ctransaccion=pCtransaccion;
}

public static final String MENSAJE="MENSAJE";
/**Obtiene el valor de mensaje
@return valor de mensaje*/
public String getMensaje(){
  return mensaje;
}
/**Fija el valor de mensaje
@param pMensaje nuevo Valor de mensaje*/
public void setMensaje(String pMensaje){
  mensaje=pMensaje;
}

public static final String TIPOMENSAJE="TIPOMENSAJE";
/**Obtiene el valor de tipomensaje
@return valor de tipomensaje*/
public String getTipomensaje(){
  return tipomensaje;
}
/**Fija el valor de tipomensaje
@param pTipomensaje nuevo Valor de tipomensaje*/
public void setTipomensaje(String pTipomensaje){
  tipomensaje=pTipomensaje;
}

public static final String VERSIONCONTROL="VERSIONCONTROL";
/**Obtiene el valor de versioncontrol
@return valor de versioncontrol*/
public Integer getVersioncontrol(){
  return versioncontrol;
}
/**Fija el valor de versioncontrol
@param pVersioncontrol nuevo Valor de versioncontrol*/
public void setVersioncontrol(Integer pVersioncontrol){
  versioncontrol=pVersioncontrol;
}

/**Implementacion de la comparacion de la entidad Tmessagedevice
@param rhs Elemento de Comparacion
@return el resultado de la comparacion
*/
public boolean equals(Object rhs){
    if (rhs == null){return false;}
    if (! (rhs instanceof Tmessagedevice)){return false;}
    Tmessagedevice that = (Tmessagedevice) 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 Tmessagedevice
@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 blancoTmessagedevice
*/
public Object createInstance() throws Exception{
 Tmessagedevice instance=new Tmessagedevice();	
 instance.setPk(new TmessagedeviceKey());
 return instance;
}
public Object cloneMe() throws Exception{
  Tmessagedevice p=(Tmessagedevice)this.clone();
  p.setPk((TmessagedeviceKey)this.pk.cloneMe());
  return p;
}
}
