Range Map

2 respostas
metaller

Boa noite pessoal.

Tenho um método que popula um VO e retorna esse VO.
Dentro do VO tem um método que popula um RangeMap (classe proprietária da empresa em que trabalho).

A parte interna desse método está implementada assim:

TxRateVO vo = new TxRateVO();
vo.setState(rs.getString("STATE"));
vo.setCatCod(rs.getString("COD_CAT"));
vo.setTxName(rs.getString("TX_NAME"));

Double tx = rs.getDouble("TX_RATE"); 
long validFrom = rs.getDate("VALID_FROM_DATE").getTime();
long validTo = Long.MAX_VALUE; 
		
while (rs.next()){
	//Como pegar o validTo da próxima iteração para setar no ValidFrom? 
	vo.addRating(validFrom, validTo, tax);
	validTo = validFrom;
}
return vo;

A minha dúvida é que eu preciso formar um RANGE de data convertido em long para passar para o método addRating.
Para isso, preciso do valor da próxima iteração para passar para o método.

Por exemplo:
No range entre 01/01/10 até 01/01/11 - 10%
No range entre 01/01/11 até 01/01/12 - 12%

Quando eu entro no Looping do while pela primeira vez, eu não tenho o valor da próxima data.
Não sei se deu para entender… Mas do jeito que esta sendo feito, creio que não vai funcionar.
Conto com sugestão de voces.

Obrigado

2 Respostas

Marcio_Lima

Há algo que impeça que todos os dados sejam transferidos dentro do loop do result-set?
Exemplo:

// . . .  
long validTo = Long.MAX_VALUE;   
           
while (rs.next()){   
    Double tx = rs.getDouble("TX_RATE");   
    long validFrom = rs.getDate("VALID_FROM_DATE").getTime();   
    vo.addRating(validFrom, validTo, tax);   
    validTo = validFrom;   
}
metaller

Oi Marcio, obrigado por responder. Não ha nada que impeça isso, só que mesmo assim, como eu vou obter om valor da próxima iteração quando ain estiver dentro da primeira iteração?
Tipo, estou na primeira iteração e preciso do valor da segunda iteração dentro do primeiro looping ainda. Será que é possivel isso. Talvez guardando em uma variável…

Criado 13 de julho de 2012
Ultima resposta 16 de jul. de 2012
Respostas 2
Participantes 2