import java.io.*;
import java.text.*;

/**
 * A simple class that performs formatted output to the
 * console (i.e., standard output)
 *
 * Note: This class uses attributes in places where it would be
 *       better to use local variable 
 *
 * @author  Prof. David Bernstein, James Madison University
 * @version 2.0bad
 */
public class Screen
{
    private boolean               group;
    private int                   minLeft, maxLeft, minRight, maxRight;
    private NumberFormat          formatter;
    private OutputStreamWriter    osw;
    private PrintWriter           out;
    private String                formattedString, outputString;

    /**
     * Default Constructor
     */
    public Screen()
    {
	osw = new OutputStreamWriter(System.out);
	out = new PrintWriter(osw);
    }



   /**
     * Create a NumberFormatter object
     */
    private NumberFormat createFormatter()
    {
	formatter = NumberFormat.getInstance();
	formatter.setMinimumIntegerDigits(minLeft);
	formatter.setMaximumIntegerDigits(maxLeft);
	formatter.setMinimumFractionDigits(minRight);
	formatter.setMaximumFractionDigits(maxRight);
	formatter.setGroupingUsed(group);

	return formatter;
    }


    /**
     * Format an int as a String 
     *
     * @param  value  The int to format
     * @return        The appropriately formatted String
     */
    private String format(int value)
    {
	minLeft  =  0;
	maxLeft  = 15;
	minRight =  0;
	maxRight =  0;
	group    = false;
	formatter = createFormatter();
	formattedString = formatter.format(value);

	return formattedString;
    }




   /**
     * Print an int
     *
     * @param value   The value
     */
    public void printInt(int value)
    {
	outputString = format(value);
	out.print(outputString);
	out.flush();
    }

}
    
