diff --git a/trunk/siprp/FichaDataProvider.java b/trunk/siprp/FichaDataProvider.java new file mode 100644 index 00000000..b9c508dd --- /dev/null +++ b/trunk/siprp/FichaDataProvider.java @@ -0,0 +1,145 @@ +/* + * FichaDataProvider.java + * + * Created on 30 de Março de 2004, 11:31 + */ + +package siprp; + +import com.evolute.utils.db.keyretrievers.*; +import com.evolute.utils.metadb.*; + +/** + * + * @author pars + */ +public class FichaDataProvider extends MetaProvider { + + private static final Object LOCK = new Object(); + private static FichaDataProvider instance = null; + + // empresas + public static final String T_EMPRESAS = "empresas"; + public static final String ID = "id"; + public static final String DESIGNACAO_SOCIAL = "designacao_social"; + public static final String SERVICO_SAUDE_TIPO = "servico_saude_tipo"; + public static final String SERVICO_SAUDE_DESIGNACAO = "servico_saude_designacao"; + public static final String SERVICO_HIGIENE_TIPO = "servico_higiene_tipo"; + public static final String SERVICO_HIGIENE_DESIGNACAO = "servico_higiene_designacao"; + public static final String INACTIVO = "inactivo"; + + public static final DBTable EMPRESAS = + new DBTable( T_EMPRESAS, + new String[]{ DESIGNACAO_SOCIAL, + SERVICO_SAUDE_TIPO, + SERVICO_SAUDE_DESIGNACAO, + SERVICO_HIGIENE_TIPO, + SERVICO_HIGIENE_DESIGNACAO, + INACTIVO }, + ID ); + + // estabelecimentos + public static final String T_ESTABELECIMENTOS = "estabelecimentos"; + // ID + public static final String LOCALIDADE = "localidade"; + public static final String EMPRESA_ID = "empresa_id"; + // INACTIVO + + public static final DBTable ESTABELECIMENTOS = + new DBTable( T_ESTABELECIMENTOS, + new String[]{ LOCALIDADE, EMPRESA_ID, INACTIVO }, + ID ); + + // trabalhadores + public static final String T_TRABALHADORES = "trabalhadores"; + // ID + public static final String NOME = "nome"; + public static final String SEXO = "sexo"; + public static final String DATA_NASCIMENTO = "data_nascimento"; + public static final String NACIONALIDADE = "nacionalidade"; + public static final String NUMERO_MECANOGRAFICO = "numero_mecanografico"; + public static final String DATA_ADMISSAO = "data_admissao"; + public static final String CATEGORIA = "categoria"; + public static final String LOCAL_TRABALHO = "local_trabalho"; + public static final String FUNCAO_PROPOSTA = "funcao_proposta"; + public static final String DATA_ADMISSAO_FUNCAO = "data_admissao_funcao"; + public static final String ESTABELECIMENTO_ID = "estabelecimento_id"; + // INACTIVO + + public static final DBTable TRABALHADORES = + new DBTable( T_TRABALHADORES, + new String[]{ NOME, SEXO, DATA_NASCIMENTO, + NACIONALIDADE, NUMERO_MECANOGRAFICO, + DATA_ADMISSAO, CATEGORIA, LOCAL_TRABALHO, + FUNCAO_PROPOSTA, DATA_ADMISSAO_FUNCAO, + ESTABELECIMENTO_ID, INACTIVO }, + ID ); + + // exames + public static final String T_EXAMES = "exames"; + // ID + public static final String OBSERVACOES = "observacoes"; + public static final String DATA = "data"; + public static final String TIPO = "tipo"; + public static final String OCASIONAL = "ocasional"; + public static final String OUTRO_TIPO = "outro_tipo"; + public static final String RESULTADO = "resultado"; + public static final String OUTRA_FUNCAO_1 = "outra_funcao_1"; + public static final String OUTRA_FUNCAO_2 = "outra_funcao_2"; + public static final String OUTRA_FUNCAO_3 = "outra_funcao_3"; + public static final String OUTRA_FUNCAO_4 = "outra_funcao_4"; + public static final String PROXIMO_EXAME = "proximo_exame"; + public static final String OUTRAS_RECOMENDACOES = "outras_recomendacoes"; + public static final String TRABALHADOR_ID = "trabalhador_id"; + + public static final DBTable EXAMES = + new DBTable( T_EXAMES, + new String[]{ OBSERVACOES, DATA, TIPO, OCASIONAL, + OUTRO_TIPO, RESULTADO, OUTRA_FUNCAO_1, + OUTRA_FUNCAO_2, OUTRA_FUNCAO_3, + OUTRA_FUNCAO_4, PROXIMO_EXAME, + OUTRAS_RECOMENDACOES, TRABALHADOR_ID }, + ID ); + +// public static DBReference + static + { + try + { + EXAMES.addRelation( TRABALHADORES, + new DBField[]{ EXAMES.getFieldByName( TRABALHADOR_ID ) }, + "R_EXAMES_TRABALHADORES" ); + TRABALHADORES.addRelation( ESTABELECIMENTOS, + new DBField[]{ TRABALHADORES.getFieldByName( ESTABELECIMENTO_ID ) }, + "R_TRABALHADORES_ESTABELECIMENTOS" ); + ESTABELECIMENTOS.addRelation( EMPRESAS, + new DBField[]{ ESTABELECIMENTOS.getFieldByName( EMPRESA_ID ) }, + "R_ESTABELECIMENTOS_EMPRESAS" ); + } + catch( Exception e ) + { + throw new RuntimeException( e ); + } + } + + /** Creates a new instance of FichaDataProvider */ + public FichaDataProvider() + throws Exception + { + setDBTable( EXAMES ); + setKeyRetriever( new JDBCAutoKeyRetriever() ); + } + + public static MetaProvider getProvider() + throws Exception + { + synchronized( LOCK ) + { + if( instance == null ) + { + instance = new FichaDataProvider(); + } + } + return instance; + } +}