diff -r aa2498ef6470 -r a27a279701f8 UndefinedObject.st --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/UndefinedObject.st Fri Jul 16 11:39:45 1993 +0200 @@ -0,0 +1,142 @@ +" + COPYRIGHT (c) 1988-92 by Claus Gittinger + All Rights Reserved + + This software is furnished under a license and may be used + only in accordance with the terms of that license and with the + inclusion of the above copyright notice. This software may not + be provided or otherwise made available to, or used by, any + other person. No title to or ownership of the software is + hereby transferred. +" + +Object subclass:#UndefinedObject + instanceVariableNames:'' + classVariableNames:'' + poolDictionaries:'' + category:'Kernel-Objects' +! + +UndefinedObject comment:' + +COPYRIGHT (c) 1988-92 by Claus Gittinger + All Rights Reserved + +there is only one instance of this class: nil + +%W% %E% +'! + +!UndefinedObject class methodsFor:'instance creation'! + +basicNew + "catch new - there MUST be only one nil in the system" + + ^ nil +! + +basicNew:size + "catch new - there MUST be only one nil in the system" + + ^ nil +! ! + +!UndefinedObject methodsFor:'error catching'! + +basicAt:index + "catch array access - its illegal + defined here since basicAt: in Object ommits the nil-check" + + ^ self notIndexed +! + +at:index + "catch array access - its illegal + defined here since at: in Object ommits the nil-check" + + ^ self notIndexed +! + +basicAt:index put:anObject + "catch array access - its illegal + defined here since basicAt:put: in Object ommits the nil-check" + + ^ self notIndexed +! + +at:index put:anObject + "catch array access - its illegal + defined here since at:put: in Object ommits the nil-check" + + ^ self notIndexed +! ! + +!UndefinedObject methodsFor:'testing'! + +isNil + "return true if I am nil - since I am, return true" + + ^ true +! + +notNil + "return true if I am not nil - since I am nil, return false" + + ^ false +! + +size + "return the number of indexed instvars + defined here since size in Object ommits the nil-check" + + ^ 0 +! + +basicSize + "return the number of indexed instvars + defined here since size in Object ommits the nil-check" + + ^ 0 +! + +hash + "return an integer useful as a hash key" + + ^ 0 +! + +identityHash + "return an integer useful as a hash key" + + ^ 0 +! ! + +!UndefinedObject methodsFor:'copying'! + +shallowCopy + "return a shallow copy of myself + - since there is only one nil in the system return self" + + ^ self +! + +deepCopy + "return a deep copy of myself + - since there is only one nil in the system return self" + + ^ self +! ! + +!UndefinedObject methodsFor:'printing & storing'! + +printString + "return a string for printing myself" + + ^ 'nil' +! + +storeString + "return a string for storing myself" + + ^ 'nil' +! !