Package student.testingsupport
Class SystemIOUtilities
- java.lang.Object
-
- student.testingsupport.SystemIOUtilities
-
public class SystemIOUtilities extends Object
A utility class that provides functions for replacingSystem
I/O streams with helpful alternative implementations to make some testing jobs easier. This class is really for use by infrastructure and support code, and students should never need to use it directly.Since this class provides only static methods, clients should not create an instance. As a result, it provides no public constructors.
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
SystemIOUtilities()
Since this class provides only static methods, clients should not create an instance.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
assertNotOnServer()
Checks to see if the calling program is running under the Apache Tomcat servlet container.static PrintStreamWithHistory
err()
Get a "wrapped" version ofSystem.err
that provides history recording functions.static boolean
isInApplet()
static boolean
isOnServer()
Checks to see if the calling program is running under the Apache Tomcat servlet container.static PrintStreamWithHistory
out()
Get a "wrapped" version ofSystem.out
that provides history recording functions.static void
replaceSystemInContents(String contents, Runnable readCallback)
ReplaceSystem.in
with the contents of the given string.static void
replaceSystemInContentsLineByLine(String contents, Runnable readCallback)
ReplaceSystem.in
with the contents of the given string.static void
restoreSystemErr()
"Unwrap"System.err
by removing any history recording wrapper, and return it to its original state.static void
restoreSystemIn()
RestoreSystem.in
to its original value.static void
restoreSystemOut()
"Unwrap"System.out
by removing any history recording wrapper, and return it to its original state.
-
-
-
Constructor Detail
-
SystemIOUtilities
protected SystemIOUtilities()
Since this class provides only static methods, clients should not create an instance. This constructor is protected only to allow legacy/ deprecated subclass stubs, and it should never actually be called.- Throws:
UnsupportedOperationException
- Always thrown if this constructor is invoked.
-
-
Method Detail
-
out
public static PrintStreamWithHistory out()
Get a "wrapped" version ofSystem.out
that provides history recording functions.- Returns:
- a version of System.out that provides history features
-
restoreSystemOut
public static void restoreSystemOut()
"Unwrap"System.out
by removing any history recording wrapper, and return it to its original state.
-
err
public static PrintStreamWithHistory err()
Get a "wrapped" version ofSystem.err
that provides history recording functions.- Returns:
- a version of System.err that provides history features
-
restoreSystemErr
public static void restoreSystemErr()
"Unwrap"System.err
by removing any history recording wrapper, and return it to its original state.
-
replaceSystemInContents
public static void replaceSystemInContents(String contents, Runnable readCallback)
ReplaceSystem.in
with the contents of the given string.- Parameters:
contents
- The content to read fromreadCallback
- will be called before every read operation. This can be used to prevent any reads by failing fast when running out of input data instead of timing out.
-
replaceSystemInContentsLineByLine
public static void replaceSystemInContentsLineByLine(String contents, Runnable readCallback)
ReplaceSystem.in
with the contents of the given string.- Parameters:
contents
- The content to read from
-
restoreSystemIn
public static void restoreSystemIn()
RestoreSystem.in
to its original value.
-
isOnServer
public static boolean isOnServer()
Checks to see if the calling program is running under the Apache Tomcat servlet container.- Returns:
- True if running as a servlet
-
isInApplet
public static boolean isInApplet()
-
assertNotOnServer
public static void assertNotOnServer()
Checks to see if the calling program is running under the Apache Tomcat servlet container. When running in such an environment, some behaviors should be avoided. For example, it is not appropriate to modify globally shared resources like those in the class System.
-
-