/* * ProcessoDataProvider.java * * Created on March 20, 2007, 5:14 PM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package siprp.medicina.processo; import com.evolute.utils.Singleton; import com.evolute.utils.arrays.Virtual2DArray; import com.evolute.utils.db.DBManager; import com.evolute.utils.db.Executer; import com.evolute.utils.jdo.JDOProvider; import com.evolute.utils.sql.Expression; import com.evolute.utils.sql.Field; import com.evolute.utils.sql.Select; import com.evolute.utils.sql.Select2; import java.util.HashMap; import siprp.medicina.processo.data.TrabalhadoresProcessoData; /** * * @author fpalma */ public class ProcessoDataProvider { public static final String PROCESSO_ABERTO_CODE = "a"; public static final String PROCESSO_FECHADO_CODE = "f"; public static final String PROCESSO_CANCELADO_CODE = "c"; public static final String PROCESSO_ABERTO_DESCRIPTION = "Aberto"; public static final String PROCESSO_FECHADO_DESCRIPTION = "Fechado"; public static final String PROCESSO_CANCELADO_DESCRIPTION = "Cancelado"; public static final String PROCESSO_POR_ABRIR_DESCRIPTION = "Por Abrir"; public static final HashMap ESTADO_PROCESSO_BY_CODE = new HashMap(); static { ESTADO_PROCESSO_BY_CODE.put( PROCESSO_ABERTO_CODE, PROCESSO_ABERTO_DESCRIPTION ); ESTADO_PROCESSO_BY_CODE.put( PROCESSO_FECHADO_CODE, PROCESSO_FECHADO_DESCRIPTION ); ESTADO_PROCESSO_BY_CODE.put( PROCESSO_CANCELADO_CODE, PROCESSO_CANCELADO_DESCRIPTION ); } private static final Object LOCK = new Object(); private static ProcessoDataProvider instance = null; private Executer EXECUTER; private JDOProvider JDO; /** Creates a new instance of ProcessoDataProvider */ public ProcessoDataProvider() throws Exception { DBManager dbm = ( DBManager ) Singleton.getInstance( Singleton.DEFAULT_DBMANAGER ); EXECUTER = dbm.getSharedExecuter( this ); JDO = ( JDOProvider ) Singleton.getInstance( Singleton.DEFAULT_JDO_PROVIDER ); } public static ProcessoDataProvider getProvider() throws Exception { synchronized( LOCK ) { if( instance == null ) { instance = new ProcessoDataProvider(); } } return instance; } public Integer[] getIDsProcessosByTrabalhador( Integer trabalhadorID ) throws Exception { Select select = new Select2( new String[]{ "marcacoes_processo" }, new Integer[ 0 ], new Expression[ 0 ], new String[]{ "id", "data_inicio" }, new Field( "marcacoes_processo.trabalhador_id" ).isEqual( trabalhadorID ), new String[]{ "data_inicio" }, null, null, null ); Virtual2DArray array = EXECUTER.executeQuery( select ); Integer ids[] = new Integer[ array.columnLength() ]; for( int n = 0; n < ids.length; n++ ) { ids[ n ] = ( Integer ) array.get( n, 0 ); } return ids; } public TrabalhadoresProcessoData getProcessoByID( Integer id ) throws Exception { return ( TrabalhadoresProcessoData ) JDO.load( TrabalhadoresProcessoData.class, id ); } public void saveProcesso( TrabalhadoresProcessoData processo ) throws Exception { processo.save(); } public String getDescricaoEstadoProcessoByCodigo( String codigo ) throws Exception { return ESTADO_PROCESSO_BY_CODE.get( codigo ); } }