Class NullObject

    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      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 method
      boolean equals​(java.lang.Object to)
      null is only equal to null
      static NullObject getNullObject()
      get the NullObject reference
      java.lang.Object getProperty​(java.lang.String property)
      Tries to get a property on null, which will always fail
      int hashCode()  
      java.lang.Object invokeMethod​(java.lang.String name, java.lang.Object args)
      Tries to invoke a method on null, which will always fail
      boolean 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 fail
      java.lang.String toString()  
      <T> T with​(Closure<T> closure)
      Allows the closure to be called for NullObject
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
    • Method Detail

      • getNullObject

        public static NullObject 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 class java.lang.Object
      • getProperty

        public java.lang.Object getProperty​(java.lang.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​(java.lang.String property,
                                java.lang.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 java.lang.Object invokeMethod​(java.lang.String name,
                                             java.lang.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​(java.lang.Object to)
        null is only equal to null
        Overrides:
        equals in class java.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 class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object