86 lines
2.1 KiB
Plaintext
Executable File
86 lines
2.1 KiB
Plaintext
Executable File
package com.fp.common.files.record;
|
|
|
|
import java.util.Iterator;
|
|
|
|
|
|
/**
|
|
* Clase que se encarga de la lectura de los bytes de cada registro
|
|
* Cada Iterable que contiene los 94 bytes del registro
|
|
* @author scastillo
|
|
*/
|
|
public class RecordIterator implements Iterable<String> {
|
|
/*
|
|
* Variable que contiene la posicion inicial para armar los 94 bytes
|
|
*/
|
|
|
|
int startPosition = 0;
|
|
/**
|
|
* Variable que contine los 88 registros
|
|
*/
|
|
String inString;
|
|
/*
|
|
* Variable que indica el tamaño de cada registro
|
|
*/
|
|
private int size = 96;
|
|
|
|
/**
|
|
* Constructor de la clase
|
|
* @param inString
|
|
*/
|
|
public RecordIterator(String inString,int linesize) {
|
|
size = linesize;
|
|
this.inString = inString;
|
|
}
|
|
|
|
/**
|
|
* Metodo que reccore los registros
|
|
*/
|
|
public Iterator<String> iterator() {
|
|
return new RIterator();
|
|
}
|
|
|
|
/**
|
|
* Clase privada que se encarga de realizar el Interator
|
|
*/
|
|
private class RIterator implements Iterator<String> {
|
|
/*
|
|
* Variable que contiene los 94 bytes del registro nacha
|
|
*/
|
|
|
|
String register;
|
|
|
|
public boolean hasNext() {
|
|
boolean ret = false;
|
|
int endPosition = startPosition + size;
|
|
if (startPosition == inString.length()) {
|
|
return false;
|
|
}
|
|
if (endPosition > inString.length()) {
|
|
endPosition = inString.length();
|
|
}
|
|
register = inString.substring(startPosition, endPosition);
|
|
if (startPosition < inString.length()) {
|
|
startPosition += size;
|
|
ret = true;
|
|
} else {
|
|
ret = false;
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* Metodo que devuelve un registro de 94 bytes
|
|
* @return
|
|
*/
|
|
public String next() {
|
|
return register;
|
|
}
|
|
|
|
/**
|
|
* Metodo que se ejecuta al eliminar un registro
|
|
*/
|
|
public void remove() {
|
|
}
|
|
}
|
|
}
|