package com.fp.persistence.pgeneral.seq; import javax.persistence.Entity; import javax.persistence.EntityManager; import javax.persistence.Id; import javax.persistence.Column; import javax.persistence.LockModeType; import java.io.Serializable; import javax.persistence.Table; import com.fp.dto.hb.HibernateBean; import com.fp.general.exception.GeneralException; import java.lang.reflect.Field; import javax.persistence.Transient; /**Clase que implementa la entidad de Hibernate que hace referencia a la tabla TGENESEQUENCES*/ @Entity(name="TgeneSequences") @Table(name="TGENESEQUENCES") public class TgeneSequences extends com.fp.dto.AbstractDataTransport implements Serializable,HibernateBean,Cloneable{ /** * 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 TgeneSequences */ @Id @Column(name="CODE" ,nullable=false, updatable=false) private String pk; @Column(name="CURRENTVALUE", nullable=false) /** * Valor actual de la secuencia */ private Long currentvalue; @Column(name="INITIALVALUE", nullable=false) /** * Valor inicial de la secuenta */ private Long initialvalue; @Column(name="LASTVALUE", nullable=false) /** * Vvalor maximo de la secuencia */ private Long lastvalue; @Column(name="CYCLIC", nullable=true) /** * Y indica que la secuencia es ciclica, cuando llega al valor maximo, toma el valor inicial */ private String cyclic; @Column(name="INCREASE", nullable=false) /** * Valor de incremento de la secuencia. */ private Integer increase; /**Contructor por defecto*/ public TgeneSequences(){ } /**Contructor de TgeneSequences @param pPk Clave Primaria del entity @param pCurrentvalue Valor actual de la secuencia @param pInitialvalue Valor inicial de la secuenta @param pLastvalue Vvalor maximo de la secuencia @param pIncrease Valor de incremento de la secuencia. */ public TgeneSequences(String pPk,Long pCurrentvalue,Long pInitialvalue,Long pLastvalue,Integer pIncrease){ this(); pk=pPk; currentvalue=pCurrentvalue; initialvalue=pInitialvalue; lastvalue=pLastvalue; increase=pIncrease; } /** * 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 TgeneSequences */ public static TgeneSequences find(EntityManager pEntityManager,Object pKey) throws Exception{ TgeneSequences obj = pEntityManager.find(TgeneSequences.class,pKey); return obj; } /**Entrega la Clave primaria de TgeneSequences @return El objeto que referencia a la Clave primaria de TgeneSequences */ public String getPk(){ return pk; } /**Fija un nuevo valor a la Clave primaria de TgeneSequences @param pPk El objeto que referencia a la nueva Clave primaria de TgeneSequences */ public void setPk(String pPk){ pk=pPk; } /**Obtiene el valor de currentvalue @return valor de currentvalue*/ public Long getCurrentvalue(){ return currentvalue; } /**Fija el valor de currentvalue @param pCurrentvalue nuevo Valor de currentvalue*/ public void setCurrentvalue(Long pCurrentvalue){ currentvalue=pCurrentvalue; } /**Obtiene el valor de initialvalue @return valor de initialvalue*/ public Long getInitialvalue(){ return initialvalue; } /**Fija el valor de initialvalue @param pInitialvalue nuevo Valor de initialvalue*/ public void setInitialvalue(Long pInitialvalue){ initialvalue=pInitialvalue; } /**Obtiene el valor de lastvalue @return valor de lastvalue*/ public Long getLastvalue(){ return lastvalue; } /**Fija el valor de lastvalue @param pLastvalue nuevo Valor de lastvalue*/ public void setLastvalue(Long pLastvalue){ lastvalue=pLastvalue; } /**Obtiene el valor de cyclic @return valor de cyclic*/ public String getCyclic(){ return cyclic; } /**Fija el valor de cyclic @param pCyclic nuevo Valor de cyclic*/ public void setCyclic(String pCyclic){ cyclic=pCyclic; } /**Obtiene el valor de increase @return valor de increase*/ public Integer getIncrease(){ return increase; } /**Fija el valor de increase @param pIncrease nuevo Valor de increase*/ public void setIncrease(Integer pIncrease){ increase=pIncrease; } public boolean equals(Object rhs){ if (rhs == null)return false; if (! (rhs instanceof TgeneSequences))return false; TgeneSequences that = (TgeneSequences) 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 TgeneSequences @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(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; } /**Implementación de la creación de un bean en blanco TgeneSequences */ public Object createInstance(){ TgeneSequences instance=new TgeneSequences(); return instance; } /**Clona la entidad TgeneSequences @see com.fp.dto.hb.HibernateBean#cloneMe() */ public Object cloneMe() throws CloneNotSupportedException{ TgeneSequences p=(TgeneSequences)this.clone(); return p; } //METODOS MANUALES /** * 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 TgeneSequences */ public static TgeneSequences findWithLock(EntityManager pEntityManager,Object pKey) throws Exception{ TgeneSequences tgeneSequences = pEntityManager.find(TgeneSequences.class, pKey, LockModeType.PESSIMISTIC_READ); if (tgeneSequences == null) { throw new GeneralException("GENE-0006", "SEMILLA DE LA SECUENCIA NO DEFINA EN TGENESEQUENCES, CODIGO: {0}", pKey); } return tgeneSequences; } }