package hu.sztaki.ilab.longneck.weblog.parser;
import hu.sztaki.ilab.longneck.Field;
import hu.sztaki.ilab.longneck.Record;
import hu.sztaki.ilab.longneck.RecordImpl;
import hu.sztaki.ilab.longneck.process.access.NoMoreRecordsException;
import org.apache.log4j.Logger;
/**
* Reads a log file line by line.
*
* This class reads a log file one line at a time, and creates a record with a single field
* "logLine", that contains the log line.
*
* @author Molnár Péter <molnarp@ilab.sztaki.hu>
*/
public class WeblogFileSource extends AbstractLogFileSource {
/** Logger. */
private static final Logger LOG = Logger.getLogger(WeblogParserSource.class);
@Override
public Record getRecord() throws NoMoreRecordsException {
Record result = new RecordImpl();
//source is prefetched and queried one-by-one
String oneData;
if (dataSegment == null || dataSegment.isEmpty()) {
dataSegment = bf.getDataSegment();
}
if (dataSegment.isEmpty()) {
throw new NoMoreRecordsException("No more records to read");
}
oneData = dataSegment.removeFirst();
if (oneData == null) {
throw new NoMoreRecordsException("No more records to read");
}
result.add(new Field("logLine", oneData));
return result;
}
@Override
public void close() {
}
}