org.abora.gold.be.canopy
Class CumulativeRecorderFinder

java.lang.Object
  |
  +--org.abora.gold.java.AboraHeaper
        |
        +--org.abora.gold.xpp.basic.Heaper
              |
              +--org.abora.gold.be.canopy.PropFinder
                    |
                    +--org.abora.gold.be.canopy.SensorPropFinder
                          |
                          +--org.abora.gold.be.canopy.AbstractRecorderFinder
                                |
                                +--org.abora.gold.be.canopy.CumulativeRecorderFinder

public class CumulativeRecorderFinder
extends AbstractRecorderFinder

Propagates a change to all recorders which might be interested in it, and picking up all
elements which might newly be made visible by it. The generators make new finders as we
pass by additional Edition boundaries. Also holds onto a collection of simple finders
looking for recorders triggered by specific Works or Editions. The current set contains
those which might record the current edition, and are passed to all Recorders. The others
are only passed to Recorders with the directContainersOnly flag off.


Field Summary
protected  ImmuSet myCurrent
           
protected  ImmuSet myGenerators
           
protected  ImmuSet myOthers
           
 
Fields inherited from class org.abora.gold.be.canopy.PropFinder
myFlags
 
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
CumulativeRecorderFinder(int flags, ImmuSet generators, ImmuSet current, ImmuSet others)
           
CumulativeRecorderFinder(Rcvr receiver)
           
 
Method Summary
 int actualHashForEqual()
           
 void checkRecorder(ResultRecorder recorder, RecorderFossil fossil)
          While doing one step of a southward walk in the O-tree,
filtered by the sensor canopy,
looking for recorders that represent queries that are newly passed by the change of
properties,
where the object that changed properties and the change itself are represented by my
state,
record my object into the recorder if it newly passes the recorder's filtering criteria.
See class comments of the various subclasses for details on the purpose of each kindOf
AbstractRecorderFinder.
 ImmuSet current()
           
 PropFinder findPast(BeEdition edition)
          During a southwards walk of a multi-Edition (aka multi-Stamp), normally we simplify the
finder by using PropFinder>>pass:.
 ImmuSet generators()
           
 boolean isEqual(Heaper heaper)
          Return true if the two objects are equal.
static Heaper make(ImmuSet generators, ImmuSet current, ImmuSet others)
           
 boolean match(Prop prop)
          tell whether a prop matches this filter
 ImmuSet others()
           
 PropFinder pass(CanopyCrum parent)
          return a simple enough finder for looking at the children
 void sendSelfTo(Xmtr xmtr)
          do nothing
 
Methods inherited from class org.abora.gold.be.canopy.AbstractRecorderFinder
checkStamp, checkStamp, oldPass
 
Methods inherited from class org.abora.gold.be.canopy.PropFinder
backfollowFinder, backfollowFinder, cannotPartializeFinder, closedPropFinder, doesPass, flags, isEmpty, isFull, openPropFinder, partialityFinder, recorderFinder, recorderPFinder, sensorFinder
 
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, 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

myGenerators

protected ImmuSet myGenerators

myCurrent

protected ImmuSet myCurrent

myOthers

protected ImmuSet myOthers
Constructor Detail

CumulativeRecorderFinder

public CumulativeRecorderFinder(int flags,
                                ImmuSet generators,
                                ImmuSet current,
                                ImmuSet others)

CumulativeRecorderFinder

public CumulativeRecorderFinder(Rcvr receiver)
Method Detail

checkRecorder

public void checkRecorder(ResultRecorder recorder,
                          RecorderFossil fossil)
Description copied from class: AbstractRecorderFinder
While doing one step of a southward walk in the O-tree,
filtered by the sensor canopy,
looking for recorders that represent queries that are newly passed by the change of
properties,
where the object that changed properties and the change itself are represented by my
state,
record my object into the recorder if it newly passes the recorder's filtering criteria.
See class comments of the various subclasses for details on the purpose of each kindOf
AbstractRecorderFinder.

Overrides:
checkRecorder in class AbstractRecorderFinder

current

public ImmuSet current()

findPast

public PropFinder findPast(BeEdition edition)
Description copied from class: PropFinder
During a southwards walk of a multi-Edition (aka multi-Stamp), normally we simplify the
finder by using PropFinder>>pass:. However, when we cross an internal Edition boundary
and are about to walk into the O-plane of that contained edition we call this method
(findPast:) to get the new PropFinder.

Overrides:
findPast in class AbstractRecorderFinder

generators

public ImmuSet generators()

match

public boolean match(Prop prop)
Description copied from class: AbstractRecorderFinder
tell whether a prop matches this filter

Overrides:
match in class AbstractRecorderFinder

others

public ImmuSet others()

pass

public PropFinder pass(CanopyCrum parent)
Description copied from class: PropFinder
return a simple enough finder for looking at the children

Overrides:
pass in class PropFinder

actualHashForEqual

public int actualHashForEqual()
Overrides:
actualHashForEqual in class PropFinder

isEqual

public boolean isEqual(Heaper heaper)
Description copied from class: Heaper
Return true if the two objects are equal.

Overrides:
isEqual in class Heaper

sendSelfTo

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

Overrides:
sendSelfTo in class Heaper

make

public static Heaper make(ImmuSet generators,
                          ImmuSet current,
                          ImmuSet others)


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