Package org.codehaus.groovy.runtime
Class NullObject
java.lang.Object
groovy.lang.GroovyObjectSupport
org.codehaus.groovy.runtime.NullObject
- All Implemented Interfaces:
GroovyObject
public class NullObject extends GroovyObjectSupport
-
Method Summary
Modifier and Type Method Description boolean
asBoolean()
A null object always coerces to false.java.lang.Object
asType(java.lang.Class c)
Type conversion method for null.java.lang.Object
clone()
Since this is implemented as a singleton, we should avoid the use of the clone methodboolean
equals(java.lang.Object to)
null is only equal to nullstatic NullObject
getNullObject()
get the NullObject referencejava.lang.Object
getProperty(java.lang.String property)
Tries to get a property on null, which will always failint
hashCode()
java.lang.Object
invokeMethod(java.lang.String name, java.lang.Object args)
Tries to invoke a method on null, which will always failboolean
is(java.lang.Object other)
The method "is" is used to test for equal references.java.util.Iterator
iterator()
iterator() method to be able to iterate on null.java.lang.Object
plus(java.lang.Object o)
Fallback for null+null.java.lang.Object
plus(java.lang.String s)
Allows to add a String to null.void
setProperty(java.lang.String property, java.lang.Object newValue)
Tries to set a property on null, which will always failjava.lang.String
toString()
<T> T
with(Closure<T> closure)
Allows the closure to be called for NullObjectMethods inherited from class groovy.lang.GroovyObjectSupport
getMetaClass, setMetaClass
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Method Details
-
getNullObject
get the NullObject reference- Returns:
- the null object
-
clone
public java.lang.Object clone()Since this is implemented as a singleton, we should avoid the use of the clone method- Overrides:
clone
in classjava.lang.Object
-
getProperty
public java.lang.Object getProperty(java.lang.String property)Tries to get a property on null, which will always fail- Parameters:
property
- - the property to get- Returns:
- a NPE
-
with
Allows the closure to be called for NullObject- Parameters:
closure
- the closure to call on the object- Returns:
- result of calling the closure
-
setProperty
public void setProperty(java.lang.String property, java.lang.Object newValue)Tries to set a property on null, which will always fail- Parameters:
property
- - the proprty to setnewValue
- - the new value of the property
-
invokeMethod
public java.lang.Object invokeMethod(java.lang.String name, java.lang.Object args)Tries to invoke a method on null, which will always fail- Parameters:
name
- the name of the method to invokeargs
- - arguments to the method- Returns:
- a NPE
-
equals
public boolean equals(java.lang.Object to)null is only equal to null- Overrides:
equals
in classjava.lang.Object
- Parameters:
to
- - the reference object with which to compare- Returns:
- - true if this object is the same as the to argument
-
iterator
public java.util.Iterator iterator()iterator() method to be able to iterate on null. Note: this part is from Invoker- Returns:
- an iterator for an empty list
-
plus
public java.lang.Object plus(java.lang.String s)Allows to add a String to null. The result is concatenated String of the result of calling toString() on this object and the String in the parameter.- Parameters:
s
- - the String to concatenate- Returns:
- the concatenated string
-
plus
public java.lang.Object plus(java.lang.Object o)Fallback for null+null. The result is always a NPE. The plus(String) version will catch the case of adding a non null String to null.- Parameters:
o
- - the Object- Returns:
- nothing
-
is
public boolean is(java.lang.Object other)The method "is" is used to test for equal references. This method will return true only if the given parameter is null- Parameters:
other
- - the object to test- Returns:
- true if other is null
-
asType
public java.lang.Object asType(java.lang.Class c)Type conversion method for null.- Parameters:
c
- - the class to convert to- Returns:
- always null
-
asBoolean
public boolean asBoolean()A null object always coerces to false.- Returns:
- false
-
toString
public java.lang.String toString()- Overrides:
toString
in classjava.lang.Object
-
hashCode
public int hashCode()- Overrides:
hashCode
in classjava.lang.Object
-