package innovimax.mixthem.operation;

import innovimax.mixthem.arguments.RuleParam;
import innovimax.mixthem.arguments.ParamValue;

import java.util.Map;

/**
* <p>Abstract class for all line operation.</p>
* @see ILineOperation
* @author Innovimax
* @version 1.0
*/
public abstract class AbstractLineOperation extends AbstractOperation implements ILineOperation {
	
	/**
	* Constructor
 	* @param params The list of parameters (maybe empty)
	* @see innovimax.mixthem.arguments.RuleParam
	* @see innovimax.mixthem.arguments.ParamValue
	*/
	public AbstractLineOperation(Map<RuleParam, ParamValue> params) {
		super(params);
	}

}

@@ -31,16 +31,55 @@
 ation;%0A%0A
+import innovimax.mixthem.MixException;%0A
 import i
@@ -163,16 +163,307 @@
 mValue;%0A
+import innovimax.mixthem.io.DefaultLineReader;%0Aimport innovimax.mixthem.io.DefaultLineWriter;%0Aimport innovimax.mixthem.io.IInputLine;%0Aimport innovimax.mixthem.io.IOutputLine;%0Aimport innovimax.mixthem.io.ReadType;%0A%0Aimport java.io.File;%0Aimport java.io.IOException;%0Aimport java.io.OutputStream;
 %0Aimport 
@@ -950,10 +950,669 @@
 s);%0A%09%7D%0A%0A
+%09@Override%0A%09public void processFiles(File file1, File file2, OutputStream out) throws MixException, IOException %7B%0A%09%09IInputLine reader1 = new DefaultLineReader(file1, true);%0A%09%09IInputLine reader2 = new DefaultLineReader(file2, false);%0A%09%09IOutputLine writer = new DefaultLineWriter(out);%0A%09%09while (reader1.hasLine() && reader2.hasLine()) %7B%0A%09%09%09final String line1 = reader1.nextLine(ReadType._REGULAR);%0A%09%09%09final String line2 = reader2.nextLine(ReadType._REGULAR);%0A%09%09%09String result = process(line1, line2);%0A%09%09%09if (result != null) %7B%0A%09%09%09%09writer.writeLine(result);%0A%09%09%09%7D%0A        %09%7D%0A        %09reader1.close();%0A        %09reader2.close();%0A        %09writer.close();%09%09%09%09%0A    %09%7D%0A%0A
 %7D%0A

add processFiles to line operation