HistoryPage.java

package org.ferris.riviera.console.history;

import static java.lang.String.valueOf;
import java.util.Optional;
import javax.enterprise.event.Observes;
import javax.inject.Inject;
import javax.inject.Singleton;
import org.apache.log4j.Logger;
import static org.ferris.riviera.console.history.HistoryFinderEvent.VIEW;
import org.ferris.riviera.console.io.Console;
import org.ferris.riviera.console.messages.Key;
import javax.annotation.Priority;

/**
 *
 * @author Michael Remijan mjremijan@yahoo.com @mjremijan
 */
@Singleton
public class HistoryPage {
    @Inject
    protected Logger log;

    @Inject
    protected Console console;

    @Inject
    protected HistoryFormat formatter;

    public void viewOfHistory(
          @Observes @Priority(VIEW) HistoryFinderEvent event
        , @Key("HistoryPage.Heading") String heading
        , @Key("HistoryPage.CountFormat") String countFormat
        , @Key("HistoryPage.LastAppliedVersionFormat") String lastAppliedVersionFormat
        , @Key("HistoryPage.LastAppliedVersionNone") String lastAppliedVersionNone
        , @Key("HistoryPage.LatestVersionFormat") String latestVersionFormat
        , @Key("HistoryPage.LatestVersionNone") String latestVersionNone
    ) {

        // Heading
        // Script History
        console.h1(heading);

        // Loop and print each script history item
        // 1.0.0.99     (Wed, 12 Dec 2007, 05:05 PM)    1.0.0.99 - First.sql
        event.getHistory()
            .forEach(s -> console.p(formatter.format(s)));
        console.br();

        // Script count: %s
        console.p(countFormat
          , valueOf(event.getHistory().size())
        );
        console.br();

        // Last applied version: %s || NONE
        Optional<History> lastApplied = event.getHistory().getLastAppliedVersion();
        if (lastApplied.isPresent()) {
            console.p(lastAppliedVersionFormat, lastApplied.get().toVersionString());
        } else {
            console.p(lastAppliedVersionNone);
        }
        console.br();

        // Latest version: %s || NONE
        Optional<History> latest = event.getHistory().getLatestVersion();
        if (latest.isPresent()) {
            console.p(latestVersionFormat, latest.get().toVersionString());
        } else {
            console.p(latestVersionNone);
        }
    }
}