Model.st
changeset 153 0a44627e1712
parent 129 f890eaabc487
child 163 80f4fe3bcc71
equal deleted inserted replaced
152:e6731f32001c 153:0a44627e1712
    65     "make the argument, anObject be a dependent of the receiver"
    65     "make the argument, anObject be a dependent of the receiver"
    66 
    66 
    67     |deps|
    67     |deps|
    68 
    68 
    69     deps := dependents.
    69     deps := dependents.
    70     deps isNil ifTrue:[
    70     (deps isNil and:[anObject isCollection not]) ifTrue:[
    71 	dependents := anObject
    71 	dependents := anObject
    72     ] ifFalse:[
    72     ] ifFalse:[
    73 	(deps isMemberOf:IdentitySet) ifTrue:[
    73 	deps isCollection ifTrue:[
    74 	    deps add:anObject
    74 	    deps add:anObject
    75 	] ifFalse:[
    75 	] ifFalse:[
    76 	    dependents := IdentitySet with:dependents with:anObject
    76 	    dependents := IdentitySet with:dependents with:anObject
    77 	]
    77 	]
    78     ]
    78     ]
    95 
    95 
    96     |deps|
    96     |deps|
    97 
    97 
    98     deps := dependents.
    98     deps := dependents.
    99     deps notNil ifTrue:[
    99     deps notNil ifTrue:[
   100 	(deps isMemberOf:IdentitySet) ifTrue:[
   100 	deps isCollection ifTrue:[
   101 	    deps do:aBlock
   101 	    deps do:aBlock
   102 	] ifFalse:[
   102 	] ifFalse:[
   103 	    aBlock value:deps
   103 	    aBlock value:deps
   104 	]
   104 	]
   105     ]
   105     ]
   114 
   114 
   115     |deps sz|
   115     |deps sz|
   116 
   116 
   117     deps := dependents.
   117     deps := dependents.
   118     deps notNil ifTrue:[
   118     deps notNil ifTrue:[
   119 	(deps isMemberOf:IdentitySet) ifTrue:[
   119 	deps isCollection ifTrue:[
   120 	    deps remove:anObject ifAbsent:[].
   120 	    deps remove:anObject ifAbsent:[].
   121 	    (sz := deps size) == 1 ifTrue:[
   121 	    (sz := deps size) == 0 ifTrue:[
   122 		dependents := deps first
   122 		dependents := nil
   123 	    ] ifFalse:[
       
   124 		(sz == 0) ifTrue:[
       
   125 		    dependents := nil
       
   126 		]
       
   127 	    ]
   123 	    ]
   128 	] ifFalse:[
   124 	] ifFalse:[
   129 	    dependents := nil
   125 	    dependents := nil
   130 	]
   126 	]
   131     ]
   127     ]
   146 ! !
   142 ! !
   147 
   143 
   148 !Model class methodsFor:'documentation'!
   144 !Model class methodsFor:'documentation'!
   149 
   145 
   150 version
   146 version
   151     ^ '$Header: /cvs/stx/stx/libview2/Model.st,v 1.17 1995-11-23 17:48:43 cg Exp $'
   147     ^ '$Header: /cvs/stx/stx/libview2/Model.st,v 1.18 1996-01-15 17:37:08 cg Exp $'
   152 ! !
   148 ! !