package gcom.faturamento.bean;
import gcom.micromedicao.medicao.MedicaoTipo;
import gcom.util.Util;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
public class RemoverImovesJaProcessadorImpressaoSimultaneaHelper {
public class DadosImovelRemoverImovesJaProcessadorImpressaoSimultanea{
private Integer idImovel;
private Short indicadorImovelImpresso;
private boolean medidoAgua;
private boolean medidoPoco;
private Integer leituraAgua;
private Integer anormalidadeAgua;
private Integer leituraPoco;
private Integer anormalidadePoco;
private Short indicadorEmissaoConta;
private String[] linhas;
public String[] getLinhas() {
return linhas;
}
public DadosImovelRemoverImovesJaProcessadorImpressaoSimultanea( Object[] objects ){
String[] linhas = new String[ objects.length ];
int i = 0;
for (Object obj : objects) {
String linha = (String) obj;
linhas[i] = linha;
++i;
// Tipo da linha
Integer tipoLinha = Integer.parseInt( linha.substring( 0, 1 ) );
if ( tipoLinha.intValue() == 1 ){
// Matricula do Imovel
Integer idImovel = Integer.parseInt( linha.substring( 1, 10 ) );
this.idImovel = idImovel;
Short medicaoTipo = Short.parseShort( linha.substring( 10, 11 ) );
if ( medicaoTipo.intValue() == MedicaoTipo.LIGACAO_AGUA ){
this.medidoAgua = true;
String strLeituraAgua = linha.substring( 37, 44 ).trim();
String strAnormalidadeAgua = linha.substring( 44, 45 ).trim();
String strIndicadorEmissaoConta = linha.substring( 107, 108 ).trim();
if ( !strLeituraAgua.equals( "" ) ){
this.leituraAgua = Util.converterStringParaInteger( strLeituraAgua );
}
if ( !strAnormalidadeAgua.equals( "0" ) ){
this.anormalidadeAgua = Util.converterStringParaInteger( strAnormalidadeAgua );
}
if ( !strIndicadorEmissaoConta.equals( "" ) ){
this.indicadorEmissaoConta = Short.parseShort( strIndicadorEmissaoConta );
} else {
this.indicadorEmissaoConta = 2;
}
} else if ( medicaoTipo.intValue() == MedicaoTipo.POCO ){
this.medidoPoco = true;
String strLeituraPoco = linha.substring( 37, 44 ).trim();
String strAnormalidadePoco = linha.substring( 44, 45 ).trim();
String strIndicadorEmissaoConta = linha.substring( 107, 108 ).trim();
if ( !strLeituraPoco.equals( "" ) ){
this.leituraPoco = Util.converterStringParaInteger( strLeituraPoco );
}
if ( !strAnormalidadePoco.equals( "0" ) ){
this.anormalidadePoco = Util.converterStringParaInteger( strAnormalidadePoco );
}
if ( !strIndicadorEmissaoConta.equals( "" ) ){
this.indicadorEmissaoConta = Short.parseShort( strIndicadorEmissaoConta );
} else {
this.indicadorEmissaoConta = 2;
}
}
}
}
this.linhas = linhas;
}
public Integer getAnormalidadeAgua() {
return anormalidadeAgua;
}
public Integer getAnormalidadePoco() {
return anormalidadePoco;
}
public Integer getIdImovel() {
return idImovel;
}
public Short getIndicadorEmissaoConta() {
return indicadorEmissaoConta;
}
public Short getIndicadorImovelImpresso() {
return indicadorImovelImpresso;
}
public Integer getLeituraAgua() {
return leituraAgua;
}
public Integer getLeituraPoco() {
return leituraPoco;
}
public boolean isMedidoAgua() {
return medidoAgua;
}
public boolean isMedidoPoco() {
return medidoPoco;
}
}
private Collection<DadosImovelRemoverImovesJaProcessadorImpressaoSimultanea> colDadosFormatados = new ArrayList();
private StringBuffer registrosRotaMarcacao = new StringBuffer();
public Collection<DadosImovelRemoverImovesJaProcessadorImpressaoSimultanea> getColDadosFormatados() {
return colDadosFormatados;
}
@SuppressWarnings({ "rawtypes", "unchecked" })
public RemoverImovesJaProcessadorImpressaoSimultaneaHelper( BufferedReader buffer ) throws IOException{
String linha = null;
Integer idImovelAnterior = null;
Collection colLinhas = new ArrayList();
while( ( linha = buffer.readLine() ) != null ){
if ( linha.charAt( 0 ) == '5' ){
registrosRotaMarcacao.append( linha + "\n" );
} else {
Integer idImovel = Integer.parseInt( linha.substring( 1, 10 ) );
if ( idImovelAnterior == null ){
idImovelAnterior = idImovel;
}
if ( idImovel.intValue() == idImovelAnterior.intValue() ){
colLinhas.add( linha );
} else {
DadosImovelRemoverImovesJaProcessadorImpressaoSimultanea dados = new DadosImovelRemoverImovesJaProcessadorImpressaoSimultanea( colLinhas.toArray() );
this.colDadosFormatados.add( dados );
idImovelAnterior = idImovel;
colLinhas = new ArrayList();
colLinhas.add( linha );
}
}
}
// Adicionamos o ultimo
DadosImovelRemoverImovesJaProcessadorImpressaoSimultanea dados = new DadosImovelRemoverImovesJaProcessadorImpressaoSimultanea( colLinhas.toArray() );
this.colDadosFormatados.add( dados );
}
public StringBuffer getRegistrosRotaMarcacao() {
return registrosRotaMarcacao;
}
public void setRegistrosRotaMarcacao(StringBuffer registrosRotaMarcacao) {
this.registrosRotaMarcacao = registrosRotaMarcacao;
}
}