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 AbstractCharOperation extends AbstractOperation implements ICharOperation {

	/**
	* Constructor
 	* @param params The list of parameters (maybe empty)
	* @see innovimax.mixthem.arguments.RuleParam
	* @see innovimax.mixthem.arguments.ParamValue
	*/
	public AbstractCharOperation(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.DefaultCharReader;%0Aimport innovimax.mixthem.io.DefaultCharWriter;%0Aimport innovimax.mixthem.io.IInputChar;%0Aimport innovimax.mixthem.io.IOutputChar;%0Aimport innovimax.mixthem.io.ReadType;%0A%0Aimport java.io.File;%0Aimport java.io.IOException;%0Aimport java.io.OutputStream;
 %0Aimport 
@@ -949,10 +949,739 @@
 s);%0A%09%7D%0A%0A
+%09@Override%0A    %09public void processFiles(File file1, File file2, OutputStream out) throws MixException, IOException %7B%0A        %09IInputChar reader1 = new DefaultCharReader(file1, true);%0A        %09IInputChar reader2 = new DefaultCharReader(file2, false);%0A        %09IOutputChar writer = new DefaultCharWriter(out); %0A        %09while (reader1.hasCharacter() && reader2.hasCharacter()) %7B%0A%09%09%09final int c1 = reader1.nextCharacter(ReadType._REGULAR);%0A%09%09%09final int c2 = reader2.nextCharacter(ReadType._REGULAR);%0A%09%09%09int%5B%5D result = operation.process(c1, c2);%0A%09%09%09for (int i = 0; i %3C result.length; i++) %7B%0A%09%09%09%09writer.writeCharacter(result%5Bi%5D);%0A%09%09%09%7D%09%09%0A        %09%7D%0A        %09reader1.close();%0A        %09reader2.close();%0A        %09writer.close();%0A    %09%7D%0A%0A
 %7D%0A

add processFiles to char operation