org.abora.gold.collection.sets
Class SetAccumulator

java.lang.Object
  |
  +--org.abora.gold.java.AboraHeaper
        |
        +--org.abora.gold.xpp.basic.Heaper
              |
              +--org.abora.gold.collection.steppers.Accumulator
                    |
                    +--org.abora.gold.collection.sets.SetAccumulator

public class SetAccumulator
extends Accumulator

A SetAccumulator accumulates a bunch of objects and then makes an ImmuSet containing all
the accumulated objects. Several people have observed that a SetAccumulator doesn''t buy
you much because instead you could just store into a MuSet. While this is true (and is in
fact how SetAccumulator is trivially implemented), my feeling is that if what a loop is
doing is enumerating a bunch of elements from which a Set is to be formed, using a
SetAccumulator in the loops says this more clearly to readers of the code.


Field Summary
protected  MuSet muSet
           
 
Fields inherited from class org.abora.gold.xpp.basic.Heaper
AllBlasts, BecomeMap, GarbageCount, InGC, InitializedClasses, InitializingClasses, LastMemory, NextClientRequestNumber, NotOneElementSignal, PackageTable, PromiseNameTable, StringHashSBoxes
 
Fields inherited from class org.abora.gold.java.AboraHeaper
ActiveClubs, CurrentAuthor, CurrentBertCanopyCache, CurrentBertCrum, CurrentChunk, CurrentGrandMap, CurrentKeyMaster, CurrentPacker, CurrentSensorCanopyCache, CurrentServer, CurrentSession, CurrentSessions, CurrentTrace, InitialEditClub, InitialOwner, InitialReadClub, InitialSponsor, InsideTransactionFlag
 
Constructor Summary
SetAccumulator()
           
SetAccumulator(Rcvr receiver)
           
SetAccumulator(ScruSet initialSet)
           
 
Method Summary
 Accumulator copy()
          Return a new Accumulator just like the current one, except that
from now on they accumulate separately
 ImmuSet get()
           
static Heaper make()
          Make a SetAccumulator which starts out with no elements accumulated
static Heaper make(ScruSet initialSet)
          Make a new SetAccumulator in which all the current elements of initialSet are already
accumulated.
Future changes to initialSet have no effect on the accumulator.
 void sendSelfTo(Xmtr xmtr)
          do nothing
 void step(Heaper someObj)
          Accumulate a new object into the Accumulator
 Heaper value()
          Return the object that results from accumulating all those objects
 
Methods inherited from class org.abora.gold.collection.steppers.Accumulator
actualHashForEqual, isEqual, ptrArray
 
Methods inherited from class org.abora.gold.xpp.basic.Heaper
abstractDeclarationFor, abstractTypeFor, addMethodAttributeToInOf, addPackage, addPackageCategory, allClientProtocolOn, argumentTypesFor, arrow, blast, blast, BLAST, cachePromiseNameTable, cachePromiseNameTableIn, canYouBecome, cast, cleanPromiseClasses, cleanupGarbage, clientClassesDo, clientFunctionsOn, clientMethodsOn, clientProtocol, clientProtocolDo, clientProtocolOn, clientProtocolOn, collectibleClasses, compare, compileClientSubclasses, compileConstantPromiseMethods, compileCreateFromRcvr, compileEQ, compileGeneratedClassMethod, compileGeneratedMethod, compileHook, compilePromise, compilePromiseDefaultMethods, compilePromiseFluidDeclarations, compilePromiseHandlers, compilePromiseMethods, compileRequestCreateMsgInArguments, compileRequestEvaluateMsgInReturningArguments, compileRPCSpecialistEvaluateMsgForReturningArguments, compileSendSelfTo, compileSendSelfToSendHook, compileStubbleMethods, compileSubclassStubbleMethods, computeMangle, computePreorder, constantTypeValue, convert, convertCopyDeclarations, convertDeferredDeclarations, convertProxyDeclarations, convertSubclassCopyDeclarations, convertSubclassDeferredDeclarations, convertSubclassProxyDeclarations, copyReferencesToType, create, create, create, create, create, create, create, create, create, create, createRequestClassArguments, definesProxyMethods, delete, deref, destroy, destruct, destructor, enum, enumFlags, equals, exportName, fetchAttribute, fetchPackage, fetchSuperCategory, fileOutClientProtocol, findCategory, findSenderAndReceiverMethods, findTailInto, flushPromiseNameTable, foo, freezeClientClasses, freezeClientProtocol, freezeStProtocol, frozenClasses, garbageCollect, garbageCollectFrom, gcOpportunity, gcOpportunity, generatedCategory, generatePromiseNames, getCategory, getOrMakePackage, getSuperCategory, handlerSignaturesFrom, hash, hashForEqual, hasProxyMethods, info_clientClasses, info_clientSideClasses, info_promiseClasses, info_stProtocol, inGC, initializedClasses, initializingClasses, initPackages, initStringHashSBoxes, inspectPieces, instanceSize, IntegerVar, isByProxy, isConstructed, isDestructed, isEqual, isEqualOrSubclassOf, isGenerated, isIntType, isKindOf, isRawType, isUnlocked, linkTimeNonInherited, make, makeClassTable, makeFillTable, makeRequestTable, mangle, markChildren, markCount, markInstances, mayBecome, mayBecomeAnySubclassOf, new1, newX, nonCopyVariables, notWorking, pack, packageClasses, packagingCategory, parseExportName, passe, pointerToStaticMember, pointerToStaticMember, pointerToVirtualMember, preorderMax, preorderNumber, printOn, PROBLEM, problems, promiseClass, promiseDefaultValue, promiseName, promiseNameTable, promiseToAbstract, registerPackageCategory, removeGeneratedCode, removeStubbleMethods, removeSubclassGeneratedCode, removeSubclassStubbleMethods, requestProcedure, requestProceduresFrom, returnTypeFor, rootName, scheduleTermination, sendProxyTo, serverNameFor, setGC, signal, signals, smalltalkSelector, stClientProtocol, stubbleSelectorTokenReturnsArguments, subclassNonCopyVariables, takeOop, togglePromiseName, togglePromiseOfParse, unimplemented, unmangle, verifyFreeze, wipeStubble
 
Methods inherited from class org.abora.gold.java.AboraHeaper
asOop, basicInspect, displayString, error, hack, halt, inspect, knownBug, mightNotImplement, REQUIRES, shouldImplement, shouldNotImplement, stubbleForSubclassResponsibility, thingToDo, willNotImplement
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

muSet

protected MuSet muSet
Constructor Detail

SetAccumulator

public SetAccumulator()

SetAccumulator

public SetAccumulator(ScruSet initialSet)

SetAccumulator

public SetAccumulator(Rcvr receiver)
Method Detail

step

public void step(Heaper someObj)
Description copied from class: Accumulator
Accumulate a new object into the Accumulator

Overrides:
step in class Accumulator

value

public Heaper value()
Description copied from class: Accumulator
Return the object that results from accumulating all those objects

Overrides:
value in class Accumulator

copy

public Accumulator copy()
Description copied from class: Accumulator
Return a new Accumulator just like the current one, except that
from now on they accumulate separately

Overrides:
copy in class Accumulator

get

public ImmuSet get()

sendSelfTo

public void sendSelfTo(Xmtr xmtr)
Description copied from class: Heaper
do nothing

Overrides:
sendSelfTo in class Heaper

make

public static Heaper make()
Make a SetAccumulator which starts out with no elements accumulated


make

public static Heaper make(ScruSet initialSet)
Make a new SetAccumulator in which all the current elements of initialSet are already
accumulated.
Future changes to initialSet have no effect on the accumulator.



Translation - Copyright © 2003 David G Jones. All Rights Reserved.
Original Udanax-Gold - Copyright © 1979-1999 Udanax.com. All rights reserved.