org.abora.gold.backrec
Class ResultRecorder

java.lang.Object
  |
  +--org.abora.gold.java.AboraHeaper
        |
        +--org.abora.gold.xpp.basic.Heaper
              |
              +--org.abora.gold.backrec.ResultRecorder
Direct Known Subclasses:
EditionRecorder, WorkRecorder

public class ResultRecorder
extends Heaper

Represents the persistent embodiment of a query operation. Can be stored on disk in the
form of a RecorderFossil. The abstract protocol deals with:
- caching previous results to avoid duplication
- storing results in a trail at unique positions
- managing persistent permissions
- looking for immediate results
- checking whether a good candidate (identified by the canopy props) should really go into
the trail


Field Summary
protected  Filter myEndorsementsFilter
           
protected  FeKeyMaster myKeyMaster
           
protected  Filter myPermissionsFilter
           
protected  CrossRegion myRelevantEndorsements
           
protected  TrailBlazer myTrailBlazer
           
 
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
ResultRecorder(Filter endorsementsFilter, CrossRegion relevantEndorsements, TrailBlazer trailBlazer)
           
 
Method Summary
 boolean accepts(BeRangeElement element)
          Whether this recorder accepts this kind of RangeElement
 IDRegion actualAuthority()
           
 int actualHashForEqual()
           
 PropFinder bertPropFinder()
          Something to find potential candidates given a source for the query
 void delayedStoreBackfollow(BeEdition edition, PropFinder finder, RecorderFossil fossil, HashSetCache hCrumCache)
          The immediate part of the backfollow has reached an Edition while traversing northwards.
 void delayedStoreMatching(BeRangeElement element, PropFinder finder, RecorderFossil fossil, HashSetCache hCrumCache)
          The immediate part of the backfollow has reached an RangeElement of the original Edition.
I now get to decide what to do next to continue the operation
 Filter endorsementsFilter()
          The endorsements I am looking for
 boolean isDirectOnly()
          Whether the recorder is for a query with the directContainersOnly flag
 boolean isEqual(java.lang.Object other)
           
 FeKeyMaster keyMaster()
           
 Filter permissionsFilter()
          The permissions I am looking for
 void record(BeRangeElement answer)
          tell my TrailBlazer to recorder it
 SensorProp sensorProp()
          A SensorProp which corresponds to what I am looking for
 void triggerIfMatching(PropFinder finder, RecorderFossil fossil)
          Trigger myself if I match the finder's profile
 
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, sendSelfTo, 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

myPermissionsFilter

protected Filter myPermissionsFilter

myEndorsementsFilter

protected Filter myEndorsementsFilter

myRelevantEndorsements

protected CrossRegion myRelevantEndorsements

myKeyMaster

protected FeKeyMaster myKeyMaster

myTrailBlazer

protected TrailBlazer myTrailBlazer
Constructor Detail

ResultRecorder

public ResultRecorder(Filter endorsementsFilter,
                      CrossRegion relevantEndorsements,
                      TrailBlazer trailBlazer)
Method Detail

accepts

public boolean accepts(BeRangeElement element)
Whether this recorder accepts this kind of RangeElement


actualAuthority

public IDRegion actualAuthority()

bertPropFinder

public PropFinder bertPropFinder()
Something to find potential candidates given a source for the query


endorsementsFilter

public Filter endorsementsFilter()
The endorsements I am looking for


isDirectOnly

public boolean isDirectOnly()
Whether the recorder is for a query with the directContainersOnly flag


keyMaster

public FeKeyMaster keyMaster()

permissionsFilter

public Filter permissionsFilter()
The permissions I am looking for


sensorProp

public SensorProp sensorProp()
A SensorProp which corresponds to what I am looking for


record

public void record(BeRangeElement answer)
tell my TrailBlazer to recorder it


triggerIfMatching

public void triggerIfMatching(PropFinder finder,
                              RecorderFossil fossil)
Trigger myself if I match the finder's profile


delayedStoreBackfollow

public void delayedStoreBackfollow(BeEdition edition,
                                   PropFinder finder,
                                   RecorderFossil fossil,
                                   HashSetCache hCrumCache)
The immediate part of the backfollow has reached an Edition while traversing northwards. I
now get to decide what to do next.


delayedStoreMatching

public void delayedStoreMatching(BeRangeElement element,
                                 PropFinder finder,
                                 RecorderFossil fossil,
                                 HashSetCache hCrumCache)
The immediate part of the backfollow has reached an RangeElement of the original Edition.
I now get to decide what to do next to continue the operation


actualHashForEqual

public int actualHashForEqual()
Overrides:
actualHashForEqual in class Heaper

isEqual

public boolean isEqual(java.lang.Object other)


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