001package Torello.Java.Build;
002
003import java.io.IOException;
004
005/**
006 * The Function-Pointer Interface used with the Stage-3 Upgrader "Pre" and "Post" Processors.
007 */
008@FunctionalInterface
009public interface UpgradeProcessor extends java.io.Serializable
010{
011    /** <EMBED CLASS='external-html' DATA-FILE-ID=SVUIDFI>  */
012    public static final long serialVersionUID = 1;
013
014    /**
015     * <EMBED CLASS='external-html' DATA-FILE-ID=FUNC_INTER_METH>
016     *
017     * <BR /><BR />May be used to implement any kind of pre-processing or post-processing during
018     * the "Stage 3" - Java-Doc Upgrader Stage.  Pass any Lambda-Expression or Function-Pointer to
019     * to the {@link Builder} instance using the {@link Config} Configuration-Class fields: 
020     * {@link Config#preUpgraderScript preUpgraderScript} and
021     * {@link Config#postUpgraderScript postUpgraderScript}
022     * 
023     * @param builder Provided to this method by the Build-Mechanism for convienence.  This class
024     * contains many public constant-fields.
025     * 
026     * @param logOutput May be used to print any output or log data
027     * 
028     * @throws IOException {@code IOException} is very common during the build, and if it is thrown
029     * it will printed
030     */
031    public void accept(Builder builder, StringBuilder logOutput) throws IOException;
032}