package org.dynamicprogram.program;

/**
 * A program is an instance able to execute a process.
 * 
 * @author Matthieu Vergne <matthieu.vergne@gmail.com>
 * 
 */
public interface Program {

	/**
	 * This method should describe the process to execute.
	 */
	public void execute();
}

@@ -36,65 +36,1134 @@
 %0D%0A%0D%0A
-/**%0D%0A * A program is an instance able to execute a proces
+import org.dynamicprogram.program.input.AbstractInputableProgram;%0D%0Aimport org.dynamicprogram.program.input.InputableProgram;%0D%0Aimport org.dynamicprogram.program.output.AbstractOutputableProgram;%0D%0Aimport org.dynamicprogram.program.output.OutputableProgram;%0D%0Aimport org.dynamicprogram.program.update.UpdatableProgram;%0D%0A%0D%0A/**%0D%0A * A program is an instance able to execute a process. It is possible to%0D%0A * implement a program extending %7B@link AbstractProgram%7D. It is also possible to%0D%0A * improve a program management implementing %7B@link InputableProgram%7D,%0D%0A * %7B@link OutputableProgram%7D and %7B@link UpdatableProgram%7D. For these last cases,%0D%0A * you can also extend their abstract classes %7B@link AbstractInputableProgram%7D,%0D%0A * %7B@link AbstractOutputableProgram%7D or abstract %7B@link UpdatableProgram%7D, but%0D%0A * only once as you cannot extends several classes in Java. In order to use all%0D%0A * the possibilities of several of these abstract classes (basic implementation,%0D%0A * listeners, etc.), you can just implements the corresponding interfaces and%0D%0A * use an instance of each needed abstract class to implement the corresponding%0D%0A * method
 s.%0D%0A

Complete the Javadoc of Program to have in mind the generic use of the most important classes of this project.