/*
  File: Out.java

  Iain Hewson
 
  December 2000
 */

package basicIO;

import java.io.*;

/**
 * Provides similar functionality to System.out class.
 */
public class Out{

    private static PrintWriter writer =
	new PrintWriter(new OutputStreamWriter(System.out), true);


    /**
     * Prints an Object
     * @param obj object to be printed.
     */
    public static void print(Object obj){
        writer.print(obj);
	writer.flush();
    }

    
    /**
     * Prints an int  
     * @param i integer to be printed.
     */
    public static void print(int i){
        print(new Integer(i));
    }


    /**
     * Prints a long  
     * @param l long integer to be printed.
     */
    public static void print(long l){
        print(new Long(l));
    }


    /**
     * Prints a double  
     * @param d double-precision floating-point number to be printed.
     */
    public static void print(double d){
        print(new Double(d));
    }


    /**
     * Prints a float  
     * @param f floating-point number to be printed.
     */
    public static void print(float f){
        print(new Float(f));
    }


    /**
     * Prints a boolean.
     * @param b boolean value to be printed.
     */
    public static void print(boolean b){
        print(new Boolean(b));
    }


    /**
     * Prints a character.
     * @param c character to be printed.
     */
    public static void print(char c){
        print(new Character(c));
    }


    /**
     * Prints an array of characters.  
     * @param c array of characters to be printed.
     */
    public static void print(char[] c){
        print(new String(c));
    }


    /**
     * Terminates the line.
     */
    public static void println(){
        writer.println();
	writer.flush();
    }


    /**
     * Prints an Object and terminates the line.
     * @param obj object to be printed.
     */
    public static void println(Object obj){
        writer.println(obj);
	writer.flush();
    }


    /**
     * Prints an integer and terminates the line. 
     * @param i integer to be printed.
     */
    public static void println(int i){
        println(new Integer(i));
    }


    /**
     * Prints a long integer and terminates the line.
     * @param l long integer to be printed.
     */
    public static void println(long l){
        println(new Long(l));
    }

    
    /**
     * Prints a double-precision floating-point number and terminates the line.
     * @param d double-precision floating-point number to be printed.
     */
    public static void println(double d){
        println(new Double(d));
    }


    /**
     * Prints a floating-point number and terminates the line.
     * @param f floating-point number to be printed.
     */
    public static void println(float f){
        println(new Float(f));
    }


    /**
     * Prints a boolean value and terminates the line.
     * @param b boolean value to be printed.
     */
    public static void println(boolean b){
        println(new Boolean(b));
    }


    /**
     * Prints a character and terminates the line.  
     * @param c character to be printed.
     */
    public static void println(char c){
        println(new Character(c));
    }


    /**
     * Prints an array of characters and terminates the line.
     * @param c array of characters to be printed.
     */
    public static void println(char[] c){
        println(new String(c));
    }
}
