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.
`Object`
`asType(Class c)`
Type conversion method for null.
`Object`
`clone()`
Since this is implemented as a singleton, we should avoid the use of the clone method
`boolean`
`equals(Object to)`
null is only equal to null
`static NullObject`
`getNullObject()`
get the NullObject reference
`Object`
`getProperty(String property)`
Tries to get a property on null, which will always fail
`int`
`hashCode()`
`Object`
`invokeMethod(String name, Object args)`
Tries to invoke a method on null, which will always fail
`boolean`
`is(Object other)`
The method "is" is used to test for equal references.
`Iterator`
`iterator()`
iterator() method to be able to iterate on null.
`Object`
`plus(Object o)`
Fallback for null+null.
`Object`
`plus(String s)`
Allows to add a String to null.
`void`
`setProperty(String property, Object newValue)`
Tries to set a property on null, which will always fail
`String`
`toString()`
`<T> T`
`with(Closure<T> closure)`
Allows the closure to be called for NullObject

### Methods 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

public static NullObject getNullObject()
get the NullObject reference

Returns:
  the null object

### clone

public Object clone()
Since this is implemented as a singleton, we should avoid the use of the clone method

Overrides:
  `clone` in class `Object`

### getProperty

public Object getProperty(String property)
Tries to get a property on null, which will always fail

Specified by:
  `getProperty` in interface `GroovyObject`
Overrides:
  `getProperty` in class `GroovyObjectSupport`
Parameters:
  `property` - - the property to get
Returns:
  a NPE

### with

public <T> T with(Closure<T> closure)
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(String property, Object newValue)
Tries to set a property on null, which will always fail

Specified by:
  `setProperty` in interface `GroovyObject`
Overrides:
  `setProperty` in class `GroovyObjectSupport`
Parameters:
  `property` - - the proprty to set
  `newValue` - - the new value of the property

### invokeMethod

public Object invokeMethod(String name, Object args)
Tries to invoke a method on null, which will always fail

Specified by:
  `invokeMethod` in interface `GroovyObject`
Overrides:
  `invokeMethod` in class `GroovyObjectSupport`
Parameters:
  `name` - the name of the method to invoke
  `args` - - arguments to the method
Returns:
  a NPE

### equals

public boolean equals(Object to)
null is only equal to null

Overrides:
  `equals` in class `Object`
Parameters:
  `to` - - the reference object with which to compare
Returns:
  - true if this object is the same as the to argument

### iterator

public 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 Object plus(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 Object plus(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(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 Object asType(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 String toString()

Overrides:
  `toString` in class `Object`

### hashCode

public int hashCode()

Overrides:
  `hashCode` in class `Object`