001package Torello.Java.Build;
002
003import Torello.JavaDoc.Upgrade;
004import Torello.JavaDoc.Stats;
005
006import Torello.Java.FileRW;
007
008import static Torello.Java.C.BRED;
009import static Torello.Java.C.BYELLOW;
010import static Torello.Java.C.RESET;
011
012import java.io.File;
013import java.io.IOException;
014
015/**
016 * This is the third Build-Stage, and it runs the Java-Doc {@link Upgrade Upgrader-Tool}
017 * 
018 * <EMBED CLASS=external-html DATA-FILE-ID=STAGE_PRIVATE_NOTE>
019 * <EMBED CLASS='external-html' DATA-FILE-ID=S03_UPGRADE>
020 */
021@Torello.JavaDoc.StaticFunctional
022public class S03_Upgrade
023{
024    // Completely irrelevant, and the 'private' modifier keeps it off of JavaDoc
025    private S03_Upgrade() { }
026
027    public static void upgrade(final BuilderRecord brec) throws IOException
028    {
029        brec.timers.startStage03();
030
031        Printing.startStep(3);
032
033        StringBuilder sb = new StringBuilder();
034
035        if (brec.preUpgraderScript != null) brec.preUpgraderScript.accept(brec, sb);
036
037        sb.append(
038            '\n' +
039            "*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\n" +
040            "Invoking Upgrader.upgrade().  Log Content Will not be available here.\n" +
041            "*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\n" +
042            '\n'
043        );
044
045        Stats result = brec.upgrader.upgrade(); 
046
047        if (brec.FAVICON != null)
048
049            try 
050                { FileRW.copyFile(brec.FAVICON, brec.LOCAL_JAVADOC_DIR, false); }
051
052            catch (IOException ioe)
053            {
054                System.err.println(
055                    "Unable to copy Favicon File: [" + brec.FAVICON + "] to javadoc output " +
056                        "directory:\n" +
057                    BYELLOW + brec.LOCAL_JAVADOC_DIR + RESET + '\n' +
058                    "Skipping Favicon..."
059                );
060            }
061
062        if (result == null)
063        {
064            System.err.println(BRED + "THERE WERE ERRORS, EXITING." + RESET);
065            System.exit(1);
066        }
067
068        if (brec.postUpgraderScript != null) brec.postUpgraderScript.accept(brec, sb);
069
070        brec.logs.write_S03_LOGS(sb.toString());
071        brec.timers.endStage03();
072    }
073}