Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: com/mockobjects/util/Null.java


1   package com.mockobjects.util;
2   
3   /**
4    * A class that represents the <code>null</code> value.
5    * The {@link com.mockobjects.util.Null Null} class is used when an
6    * {@link com.mockobjects.Expectation Expectation} is set to expect nothing.
7    * <p>
8    * <b>Example usage:</b>
9    * <pre>
10   * public class MockX {
11   *    private Expectation... anExpectation = new Expectation...(...);
12   *
13   *    public MockX() {
14   *       anExpectation.setExpectNothing();
15   *    }
16   *
17   *    public void setAnExpectation(Object value) {
18   *       anExpectation.setExpected(value);
19   *    }
20   *
21   *    public void setActual(Object value) {
22   *       anExpectation.setActual(value);
23   *    }
24   * }
25   * </pre>
26   * The act of calling {@link com.mockobjects.Expectation#setExpectNothing() Expectation.setExpectNothing()}
27   * tells the expectation that it should expect no values to change.  Since
28   * all {@link com.mockobjects.util.Null Null} objects are equal to themselves,
29   * most expectations set their expected value to an instance of
30   * {@link com.mockobjects.util.Null Null}, and at the same time, set their actual
31   * value to another instance of {@link com.mockobjects.util.Null Null}.
32   * This way, when {@link com.mockobjects.Verifiable#verify() verify()} checks
33   * expectations, they will compare two {@link com.mockobjects.util.Null Null}
34   * objects together, which is guaranteed to succeed.
35   * @author <a href="mailto:fbos@users.sourceforge.net">Francois Beausoleil (fbos@users.sourceforge.net)</a>
36   * @version $Id: Null.java,v 1.3 2002/03/28 18:16:54 custommonkey Exp $
37   */
38  public class Null {
39      /**
40       * The default description for all {@link com.mockobjects.util.Null Null}
41       * objects.
42       * This String is equal to "<code>Null</code>".
43       */
44      public static final String DEFAULT_DESCRIPTION = "Null";
45  
46      /**
47       * A default {@link com.mockobjects.util.Null Null} object.
48       * Instead of always instantiating new {@link com.mockobjects.util.Null Null}
49       * objects, consider using a reference to this object instead. This way,
50       * the virtual machine will not be taking the time required to instantiate
51       * an object everytime it is required.
52       */
53      public static final Null NULL = new Null();
54  
55      /**
56       * The description of this {@link com.mockobjects.util.Null Null} object.
57       */
58      final private String myDescription;
59  
60      /**
61       * Instantiates a new {@link com.mockobjects.util.Null Null} object with
62       * the default description.
63       * @see com.mockobjects.util.Null#DEFAULT_DESCRIPTION
64       */
65      public Null() {
66          this(DEFAULT_DESCRIPTION);
67      }
68  
69      /**
70       * Instantiates a new {@link com.mockobjects.util.Null Null} object and
71       * sets it's description.
72       * @param description
73       */
74      public Null(String description) {
75          super();
76          myDescription = description;
77      }
78  
79      /**
80       * Determines equality between two objects.
81       * {@link com.mockobjects.util.Null Null} objects are only equal to
82       * another instance of themselves.
83       * @param other
84       */
85      public boolean equals(Object other) {
86          return other instanceof Null;
87      }
88  
89      /**
90       * Returns this {@link com.mockobjects.util.Null Null} object's hashCode.
91       * All  {@link com.mockobjects.util.Null Null} return the same
92       * hashCode value.
93       */
94      public int hashCode() {
95          return 0;
96      }
97  
98      /**
99       * Returns a string representation of this {@link com.mockobjects.util.Null Null}
100      * object.
101      * This merely returns the string passed to the constructor initially.
102      */
103     public String toString() {
104         return myDescription;
105     }
106 }