/** * The contents of this file are subject to the license and copyright * detailed in the LICENSE and NOTICE files at the root of the source * tree and available online at * * http://www.dspace.org/license/ */ package org.dspace.browse; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; /** * Utility class to provide a wrapper for the various output possibilities from * the IndexBrowse class. It can output to the screen and to file, and it can be * verbose or not verbose. * * @author Richard Jones * */ public class BrowseOutput { /** be verbose? */ private boolean verbose = false; /** print to the screen? */ private boolean print = false; /** write to file? */ private boolean file = false; /** append to file, or overwrite? */ private boolean append = true; /** name of file to write to */ private String fileName; /** * Constructor. */ public BrowseOutput() { } /** * @return Returns the append. */ public boolean isAppend() { return append; } /** * @param append * The append to set. */ public void setAppend(boolean append) { this.append = append; } /** * @return Returns the fileName. */ public String getFileName() { return fileName; } /** * @param fileName * The fileName to set. */ public void setFileName(String fileName) { this.fileName = fileName; setAppend(false); } /** * @return Returns the file. */ public boolean isFile() { return file; } /** * @param file * The file to set. */ public void setFile(boolean file) { this.file = file; } /** * @return Returns the print. */ public boolean isPrint() { return print; } /** * @param print * The print to set. */ public void setPrint(boolean print) { this.print = print; } /** * @return Returns the verbose. */ public boolean isVerbose() { return verbose; } /** * @param verbose * The verbose to set. */ public void setVerbose(boolean verbose) { this.verbose = verbose; } /** * Pass in a message to be processed. If the setting is verbose * then this will be output to System.out * * @param message the message to set */ public void message(String message) { if (isVerbose()) { System.out.println(message); } } /** * Pass in a message that must be displayed to the user, irrespective * of the verbosity. Will be displayed to System.out * * @param message the urgent message */ public void urgent(String message) { System.out.println(message); } /** * Pass in some SQL. If print is set to true this will output to the * screen. If file is set to true, this will write to the file specified. * * @param sql SQL string * @throws BrowseException if browse error */ public void sql(String sql) throws BrowseException { if (isPrint()) { System.out.println(sql); } if (isFile()) { try { BufferedWriter out = new BufferedWriter(new FileWriter(fileName, isAppend())); out.write(sql + "\n"); out.close(); setAppend(true); } catch (IOException e) { throw new BrowseException(e); } } } }