See: Description
Class | Description |
---|---|
Null |
Toy factory to create proxies acting as Null Objects.
|
NullInvoker |
A
Invoker implementation that returns always new Null objects. |
A toy to create dummy null objects with intelligent behaviour.
The package provides a proxy factory creating proxies, that work as a
dummy replacement. Main component is the Null toy, a utility class
creating these proxies. Such a proxy contains an instance of a NullInvoker
that handles the
calls.
A null object instantiated by this toy has deterministically boring behaviour as follows:
List
, Collections.EMPTY_LIST
is returned.Set
, Collections.EMPTY_SET
is returned.Map
, Collections.EMPTY_MAP
is returned.SortedSet
, Null.NULL_SORTED_SET
is
returned.SortedMap
, Null.NULL_SORTED_MAP
is
returned.Object
, an Object is
returned.ProxyFactory
can create a proxy for the type, a
new null object for that type is returned (so you can recurse or step
through object graphs without surprises). For the standard proxy
factory this requires the return type to be an interface.In the follwoing example the behaviour is demonstrated by an Null
object of the type File
:
ProxyFactory factory = new CglibProxyFactory(); File file = (File)Null.object(File.class, factory); System.out.println("Length is: " + file.length()); System.out.println("Exists: " + file.exists()); System.out.println("Array is empty: " + file.list().length); System.out.println("toURL returns null, since URL is final: " + (file.toURL() == null)); System.out.println("Parent file is Null proxy: " + Null.isNullObject(file.getParentFile(), factory));