Evaluating Software Design Patterns
— the "Gang of Four" patterns implemented in Java 6

dk.rode.thesis.singleton
Class Main

java.lang.Object
  extended by dk.rode.thesis.singleton.Main
All Implemented Interfaces:
Testable

public class Main
extends Object
implements Testable

Singleton tests.

Author:
Gunni Rode / rode.dk

Constructor Summary
Main()
          No-arg constructor.
 
Method Summary
private
<T,S extends T>
boolean
getSingleton(Log out, SingletonRegistry<T> registry, Class<S> type, S singleton)
          Tests the singleton object supplied as singleton against the return instance from registry when looked up using type.
private
<T,S extends T>
boolean
loadSingleton(Log out, LoadableSingletonRegistry<T> registry, String className, S singleton)
          Tests the singleton object supplied as singleton against the return instance from registry when looked up using type.
static void main(String[] args)
          Executes the Singleton tests.
 boolean test(Log out, Arguments arguments)
          Performs the specific tests and report the outcome to the log supplied as log.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Main

public Main()
No-arg constructor.

Method Detail

getSingleton

private <T,S extends T> boolean getSingleton(Log out,
                                             SingletonRegistry<T> registry,
                                             Class<S> type,
                                             S singleton)
Tests the singleton object supplied as singleton against the return instance from registry when looked up using type.

Type Parameters:
T - The super-type of singleton types supported by registry.
S - The actual singleton type to test.
Parameters:
out - The log to use; never null.
registry - The registry to use to acquire the singleton instance based on type; never null.
type - The type of the singleton object to test; never null.
singleton - The known singleton object to test on; never null.
Returns:
True if the test succeeded, false if not.

loadSingleton

private <T,S extends T> boolean loadSingleton(Log out,
                                              LoadableSingletonRegistry<T> registry,
                                              String className,
                                              S singleton)
Tests the singleton object supplied as singleton against the return instance from registry when looked up using type.

Type Parameters:
T - The super-type of singleton types supported by registry.
S - The actual singleton type to test.
Parameters:
out - The log to use; never null.
registry - The registry to use to acquire the singleton instance based on type; never null.
className - The class name of the singleton type to test; never null.
singleton - The known singleton object to test on; never null.
Returns:
True if the test succeeded, false if not.

main

public static void main(String[] args)
Executes the Singleton tests.

Parameters:
args - The arguments to supply to test(Log, Arguments), if any; can be null.

test

public boolean test(Log out,
                    Arguments arguments)
Description copied from interface: Testable
Performs the specific tests and report the outcome to the log supplied as log.

Arguments to control log-level:

Specified by:
test in interface Testable
Parameters:
out - The log to report the test outcome to; cannot be null.
arguments - Additional arguments, if any.
Returns:
True if the tests succeeded, false if not.

Gunni Rode / rode.dk

Feel free to use and/or modify the Java 6 source code developed for this thesis AT YOUR OWN RISK, but note that the source code comes WITHOUT ANY — and I do mean WITHOUT ANY — form of warranty WHAT SO EVER!

The original thesis and source code are available at rode.dk/thesis.