You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SIPRP/trunk/siprp/medicina/processo/ProcessoDataProvider.java

116 lines
3.3 KiB

/*
* 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.MarcacoesProcessoData;
/**
*
* @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<String,String> ESTADO_PROCESSO_BY_CODE =
new HashMap<String,String>();
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 MarcacoesProcessoData getProcessoByID( Integer id )
throws Exception
{
return ( MarcacoesProcessoData ) JDO.load( MarcacoesProcessoData.class, id );
}
public void saveProcesso( MarcacoesProcessoData processo )
throws Exception
{
processo.save();
}
public String getDescricaoEstadoProcessoByCodigo( String codigo )
throws Exception
{
return ESTADO_PROCESSO_BY_CODE.get( codigo );
}
}