/* * Jitsi, the OpenSource Java VoIP and Instant Messaging client. * * Copyright @ 2015 Atlassian Pty Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package net.java.sip.communicator.util; import java.io.*; /** * This class provides a PrintWriter implementation that we use to replace * System.out so that we could capture output from all libs or SC code that * uses calls to System.out.println(); * * @author Emil Ivov */ public class ScStdOut extends PrintStream { private static boolean stdOutPrintingEnabled = false; /** * This PrintStream contains System.out when the class were initiated. * Normally that would be the system default System.out */ private PrintStream systemOut; public static void setStdOutPrintingEnabled(boolean enabled) { stdOutPrintingEnabled = enabled; } public ScStdOut(PrintStream printStream) { super(printStream); systemOut = System.out; } /** * Returns the default System.out PrintStream that was in use * before this class was instantiated. * * @return the original System.out PrintStream */ public PrintStream getSystemOut() { return systemOut; } /** * Prints string if stdOutPrintingEnabled is enabled. * * @param string the String to print. */ @Override public void print(String string) { if(stdOutPrintingEnabled) super.print(string); } /** * Prints x if stdOutPrintingEnabled is enabled. * * @param x the boolean to print. */ @Override public void println(boolean x) { if(stdOutPrintingEnabled) super.println(x); } /** * Prints x if stdOutPrintingEnabled is enabled. * * @param x the char to print. */ @Override public void println(char x) { if(stdOutPrintingEnabled) super.println(x); } /** * Prints x if stdOutPrintingEnabled is enabled. * * @param x the char[] to print. */ @Override public void println(char[] x) { if(stdOutPrintingEnabled) super.println(x); } /** * Prints x if stdOutPrintingEnabled is enabled. * * @param x the double to print. */ @Override public void println(double x) { if(stdOutPrintingEnabled) super.println(x); } /** * Prints x if stdOutPrintingEnabled is enabled. * * @param x the float to print. */ @Override public void println(float x) { if(stdOutPrintingEnabled) super.println(x); } /** * Prints x if stdOutPrintingEnabled is enabled. * * @param x the int to print. */ @Override public void println(int x) { if(stdOutPrintingEnabled) super.println(x); } /** * Prints x if stdOutPrintingEnabled is enabled. * * @param x the long to print. */ @Override public void println(long x) { if(stdOutPrintingEnabled) super.println(x); } /** * Prints x if stdOutPrintingEnabled is enabled. * * @param x the Object to print. */ @Override public void println(Object x) { if(stdOutPrintingEnabled) super.println(x); } /** * Prints x if stdOutPrintingEnabled is enabled. * * @param x the String to print. */ @Override public void println(String x) { if(stdOutPrintingEnabled) super.println(x); } /** * Prints b if stdOutPrintingEnabled is enabled. * * @param b the boolean to print. */ @Override public void print(boolean b) { if(stdOutPrintingEnabled) super.print(b); } /** * Prints c if stdOutPrintingEnabled is enabled. * * @param c the char to print. */ @Override public void print(char c) { if(stdOutPrintingEnabled) super.print(c); } /** * Prints s if stdOutPrintingEnabled is enabled. * * @param s the char[] to print. */ @Override public void print(char[] s) { if(stdOutPrintingEnabled) super.print(s); } /** * Prints d if stdOutPrintingEnabled is enabled. * * @param d the double to print. */ @Override public void print(double d) { if(stdOutPrintingEnabled) super.print(d); } /** * Prints f if stdOutPrintingEnabled is enabled. * * @param f the float to print. */ @Override public void print(float f) { if(stdOutPrintingEnabled) super.print(f); } /** * Prints i if stdOutPrintingEnabled is enabled. * * @param i the int to print. */ @Override public void print(int i) { if(stdOutPrintingEnabled) super.print(i); } /** * Prints l if stdOutPrintingEnabled is enabled. * * @param l the long to print. */ @Override public void print(long l) { if(stdOutPrintingEnabled) super.print(l); } /** * Prints obj if stdOutPrintingEnabled is enabled. * * @param obj the Object to print. */ @Override public void print(Object obj) { if(stdOutPrintingEnabled) super.print(obj); } /** * Prints an empty line stdOutPrintingEnabled is enabled. */ @Override public void println() { if(stdOutPrintingEnabled) super.println(); } }