com.topologi.diffx.load.TextRecorder Maven / Gradle / Ivy
Show all versions of docx4j-diffx Show documentation
/*
* This file is part of the DiffX library.
*
* For licensing information please see the file license.txt included in the release.
* A copy of this licence can also be found at
* http://www.opensource.org/licenses/artistic-license-2.0.php
*/
package com.topologi.diffx.load;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.StringReader;
import com.topologi.diffx.event.impl.LineEvent;
import com.topologi.diffx.sequence.EventSequence;
/**
* Records the line events in a text.
*
* @author Christophe Lauret
*
* @version 17 October 2006
*/
public final class TextRecorder implements Recorder {
/**
* Runs the recorder on the specified file.
*
* This method will count on the {@link org.xml.sax.InputSource} to guess the correct encoding.
*
* @param file The file to process.
*
* @return The recorded sequence of events.
*
* @throws LoadingException If thrown whilst parsing.
* @throws IOException Should I/O error occur.
*/
public EventSequence process(File file) throws LoadingException, IOException {
BufferedReader reader = new BufferedReader(new FileReader(file));
String line = reader.readLine();
int count = 0;
EventSequence seq = new EventSequence();
while (line != null) {
seq.addEvent(new LineEvent(line, ++count));
line = reader.readLine();
}
reader.close();
return seq;
}
/**
* Runs this recorder on the specified string.
*
* @param text The text string to process.
*
* @return The recorded sequence of events.
*
* @throws LoadingException If thrown whilst parsing.
* @throws IOException Should I/O error occur.
*/
public EventSequence process(String text) throws LoadingException, IOException {
BufferedReader reader = new BufferedReader(new StringReader(text));
String line = reader.readLine();
int count = 0;
EventSequence seq = new EventSequence();
while (line != null) {
seq.addEvent(new LineEvent(line, ++count));
line = reader.readLine();
}
return seq;
}
}