maia/.svn/pristine/1d/1d2a07120bbe682cc163956e31f...

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() {
}
}
}