/* Wotonomy: OpenStep design patterns for pure Java applications. Copyright (C) 2001 Intersect Software Corporation This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, see http://www.gnu.org */ package net.wotonomy.foundation; import java.io.Serializable; /** * NSNull is used to represent null in Collections classes because List and Map * do not specify whether null values are allowed and because NSArray and * NSDictionary explicitly do not allow null values.
*
* * Use of the static singleton method nullValue() is required by this * implementation because Java cannot return a singleton instance from a * constructor. Even then, more than one instance may exist in the application * due to object serialization. Be sure to compare with equals(). * * @author michael@mpowers.net * @author $Author: cgruber $ * @version $Revision: 892 $ */ public class NSNull implements Serializable { private static final NSNull instance = new NSNull(); /** * Create a new instance of NSNull. */ private NSNull() { } /** * Returns the static instance of nullValue. Note that serialization may mean * that more than one instance of NSNull exists, so be sure to compare with * equals(). */ public static NSNull nullValue() { return instance; } /** * Returns a human-readable string representation. */ public String toString() { return "[null]"; } /** * Hashcode of all instances is zero. */ public int hashCode() { return 0; } /** * Implemented to return true for any instance of NSNull. */ public boolean equals(Object anObject) { return (anObject instanceof NSNull); } } /* * $Log$ Revision 1.1 2006/02/16 12:47:16 cgruber Check in all sources in * eclipse-friendly maven-enabled packages. * * Revision 1.3 2003/08/06 23:07:52 chochos general code cleanup (mostly, * removing unused imports) * * Revision 1.2 2001/03/01 20:36:09 mpowers Implemented equals, hashcode, and * serializable. * * Revision 1.1 2001/02/26 22:41:51 mpowers Implemented null placeholder * classes. Duplicator now uses NSNull. No longer catching base exception class. * * */