org.abora.gold.props
Class PropChange

java.lang.Object
  |
  +--org.abora.gold.java.AboraHeaper
        |
        +--org.abora.gold.xpp.basic.Heaper
              |
              +--org.abora.gold.props.PropChange
Direct Known Subclasses:
CannotPartializeChange, DetectorWaitingChange, EndorsementsChange, FullPropChange, PermissionsChange

public class PropChange
extends Heaper

Each concrete class has just one canonical instance and no state. A PropChange is used to
represent which property aspect changed (such as permission vs endorsement vs both).


Field Summary
protected static PropChange TheBertPropChange
           
protected static PropChange TheCannotPartializeChange
           
protected static PropChange TheDetectorWaitingChange
           
protected static PropChange TheEndorsementsChange
           
protected static PropChange ThePermissionsChange
           
protected static PropChange TheSensorPropChange
           
 
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
PropChange()
           
 
Method Summary
 int actualHashForEqual()
           
 boolean areEqualPropJoints(PropJoint a, PropJoint b)
          compare the changed parts of two PropJoints
 boolean areEqualProps(Prop a, Prop b)
          compare the changed parts of two Props
static PropChange bertPropChange()
           
static PropChange cannotPartializeChange()
           
 Prop changed(Prop old, Prop a)
          Return a Prop which is the same as 'old' for aspects which I don't represent as changing,
and 'a' for aspects that I do represent as changing.
This is used to replace Props with minimum effort, given that the 'a' parameter has only
new props which are of the aspect this change replaces, while the 'old' parameter starts
as the original set of Props, perhaps including other aspects.
See also: with:with:, which unions rather than replacing.
 PropJoint changedJoint(PropJoint old, PropJoint a)
          Return a PropJoint which is the same as 'old' for aspects which I don't represent as
changing, and 'a' for aspects that I do represent as changing.
This is used to replace PropJoints with minimum effort, given that the 'a' parameter has
only new PropJoints which are of the aspect this change replaces, while the 'old'
parameter starts as the original set of PropJoints, perhaps including other aspects.
See also: change:with:, which does this for Props rather than PropJoints.
static PropChange detectorWaitingChange()
           
static PropChange endorsementsChange()
           
 PropFinder fetchFinder(Prop before, Prop after)
           
 PropFinder fetchFinder(Prop before, Prop after, BeRangeElement element)
           
 PropFinder fetchFinder(Prop before, Prop after, BeRangeElement element, PropFinder oldFinder)
          return a finder looking for this change from before to after, in addition to whatever
oldFinder is looking for (assumes this changes is a subset of oldFinder's change)
 PropFinder finderPartFrom(PropFinder finder)
           
static void initTimeNonInherited()
           
 boolean isEqual(Heaper other)
          Return true if the two objects are equal.
 boolean isEqualToJointOf(PropJoint a, Prop b)
          compare the changed parts of a PropJoint and a Prop
 boolean isFull()
          whether this is a complete change of props
 PropJoint join(PropJoint old, PropJoint a, PropJoint b)
          combine two PropJoints with minimum effort, given the previous result
 PropJoint joinProp(PropJoint old, PropJoint a, PropJoint b, Prop prop)
          combine two PropJoints and a prop with minimum effort, given the previous result
static void linkTimeNonInherited()
           
static PropChange permissionsChange()
           
static PropChange sensorPropChange()
          Returns the canonical PropChange object for propagating the properties that result from
installing a recorder (permissions and endorsement filters).
 Prop with(Prop old, Prop a)
          Return a Prop which is the same as 'old' for aspects which I don't represent as changing,
and the union of 'old' and 'a' for aspects that I do represent as changing.
This is used to accumulate changes to Props with minimum effort, given that the 'a'
parameter has only new props which are of the aspect this change changes, while the 'old'
parameter starts as the original set of Props, perhaps including other aspects.
See also changed:with:, which replaces rather than unioning.
 
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, 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

TheBertPropChange

protected static PropChange TheBertPropChange

TheCannotPartializeChange

protected static PropChange TheCannotPartializeChange

TheDetectorWaitingChange

protected static PropChange TheDetectorWaitingChange

TheEndorsementsChange

protected static PropChange TheEndorsementsChange

ThePermissionsChange

protected static PropChange ThePermissionsChange

TheSensorPropChange

protected static PropChange TheSensorPropChange
Constructor Detail

PropChange

public PropChange()
Method Detail

areEqualProps

public boolean areEqualProps(Prop a,
                             Prop b)
compare the changed parts of two Props


changed

public Prop changed(Prop old,
                    Prop a)
Return a Prop which is the same as 'old' for aspects which I don't represent as changing,
and 'a' for aspects that I do represent as changing.
This is used to replace Props with minimum effort, given that the 'a' parameter has only
new props which are of the aspect this change replaces, while the 'old' parameter starts
as the original set of Props, perhaps including other aspects.
See also: with:with:, which unions rather than replacing.


fetchFinder

public PropFinder fetchFinder(Prop before,
                              Prop after,
                              BeRangeElement element,
                              PropFinder oldFinder)
return a finder looking for this change from before to after, in addition to whatever
oldFinder is looking for (assumes this changes is a subset of oldFinder's change)


isFull

public boolean isFull()
whether this is a complete change of props


with

public Prop with(Prop old,
                 Prop a)
Return a Prop which is the same as 'old' for aspects which I don't represent as changing,
and the union of 'old' and 'a' for aspects that I do represent as changing.
This is used to accumulate changes to Props with minimum effort, given that the 'a'
parameter has only new props which are of the aspect this change changes, while the 'old'
parameter starts as the original set of Props, perhaps including other aspects.
See also changed:with:, which replaces rather than unioning.


actualHashForEqual

public int actualHashForEqual()
Overrides:
actualHashForEqual in class Heaper

isEqual

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

Overrides:
isEqual in class Heaper

fetchFinder

public PropFinder fetchFinder(Prop before,
                              Prop after)

finderPartFrom

public PropFinder finderPartFrom(PropFinder finder)

fetchFinder

public PropFinder fetchFinder(Prop before,
                              Prop after,
                              BeRangeElement element)

areEqualPropJoints

public boolean areEqualPropJoints(PropJoint a,
                                  PropJoint b)
compare the changed parts of two PropJoints


changedJoint

public PropJoint changedJoint(PropJoint old,
                              PropJoint a)
Return a PropJoint which is the same as 'old' for aspects which I don't represent as
changing, and 'a' for aspects that I do represent as changing.
This is used to replace PropJoints with minimum effort, given that the 'a' parameter has
only new PropJoints which are of the aspect this change replaces, while the 'old'
parameter starts as the original set of PropJoints, perhaps including other aspects.
See also: change:with:, which does this for Props rather than PropJoints.


isEqualToJointOf

public boolean isEqualToJointOf(PropJoint a,
                                Prop b)
compare the changed parts of a PropJoint and a Prop


join

public PropJoint join(PropJoint old,
                      PropJoint a,
                      PropJoint b)
combine two PropJoints with minimum effort, given the previous result


joinProp

public PropJoint joinProp(PropJoint old,
                          PropJoint a,
                          PropJoint b,
                          Prop prop)
combine two PropJoints and a prop with minimum effort, given the previous result


bertPropChange

public static PropChange bertPropChange()

cannotPartializeChange

public static PropChange cannotPartializeChange()

detectorWaitingChange

public static PropChange detectorWaitingChange()

endorsementsChange

public static PropChange endorsementsChange()

permissionsChange

public static PropChange permissionsChange()

sensorPropChange

public static PropChange sensorPropChange()
Returns the canonical PropChange object for propagating the properties that result from
installing a recorder (permissions and endorsement filters). A better name would be
recorderPropChange


initTimeNonInherited

public static void initTimeNonInherited()

linkTimeNonInherited

public static void linkTimeNonInherited()


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