001package org.kuali.common.util.inform; 002 003import java.io.PrintStream; 004 005import org.kuali.common.util.Assert; 006import org.kuali.common.util.log.LogMsg; 007 008public final class Inform { 009 010 public static final PrintStream DEFAULT_PRINT_STREAM = System.out; 011 public static final String DEFAULT_START_TOKEN = "[INFO] Progress: "; 012 public static final String DEFAULT_PROGRESS_TOKEN = "."; 013 public static final String DEFAULT_COMPLETE_TOKEN = "\n"; 014 public static final LogMsg DEFAULT_START_MESSAGE = LogMsg.NOOP; 015 public static final LogMsg DEFAULT_STOP_MESSAGE = LogMsg.NOOP; 016 017 public static final Inform DEFAULT_INFORM = new Inform(); 018 019 public Inform() { 020 this(DEFAULT_PRINT_STREAM, DEFAULT_START_TOKEN, DEFAULT_PROGRESS_TOKEN, DEFAULT_COMPLETE_TOKEN, DEFAULT_START_MESSAGE, DEFAULT_STOP_MESSAGE); 021 } 022 023 public Inform(LogMsg startMessage) { 024 this(DEFAULT_PRINT_STREAM, DEFAULT_START_TOKEN, DEFAULT_PROGRESS_TOKEN, DEFAULT_COMPLETE_TOKEN, startMessage, DEFAULT_STOP_MESSAGE); 025 } 026 027 public Inform(LogMsg startMessage, LogMsg stopMessage) { 028 this(DEFAULT_PRINT_STREAM, DEFAULT_START_TOKEN, DEFAULT_PROGRESS_TOKEN, DEFAULT_COMPLETE_TOKEN, startMessage, stopMessage); 029 } 030 031 public Inform(PrintStream printStream, String startToken, String progressToken, String completeToken, LogMsg startMessage, LogMsg stopMessage) { 032 Assert.noNulls(printStream, startMessage, stopMessage, completeToken); 033 // Printing a whitespace character to indicate progress completion is ok 034 // Assert.noBlanks(startToken, progressToken,completeToken); 035 Assert.noBlanks(startToken, progressToken); 036 this.printStream = printStream; 037 this.startToken = startToken; 038 this.progressToken = progressToken; 039 this.completeToken = completeToken; 040 this.startMessage = startMessage; 041 this.stopMessage = stopMessage; 042 } 043 044 private final PrintStream printStream; 045 private final String startToken; 046 private final String progressToken; 047 private final String completeToken; 048 private final LogMsg startMessage; 049 private final LogMsg stopMessage; 050 051 public PrintStream getPrintStream() { 052 return printStream; 053 } 054 055 public String getStartToken() { 056 return startToken; 057 } 058 059 public String getCompleteToken() { 060 return completeToken; 061 } 062 063 public LogMsg getStartMessage() { 064 return startMessage; 065 } 066 067 public LogMsg getStopMessage() { 068 return stopMessage; 069 } 070 071 public String getProgressToken() { 072 return progressToken; 073 } 074 075}