org.abora.gold.be.basic
Class BeWork

java.lang.Object
  |
  +--org.abora.gold.java.AboraHeaper
        |
        +--org.abora.gold.xpp.basic.Heaper
              |
              +--org.abora.gold.snarf.Abraham
                    |
                    +--org.abora.gold.be.basic.BeRangeElement
                          |
                          +--org.abora.gold.be.basic.BeWork
Direct Known Subclasses:
BeClub

public class BeWork
extends BeRangeElement

This is the actual representation on disk; the Fe versions of these classes hide the
actual representation.ó


Field Summary
protected  ID myEditClub
           
protected  BeEdition myEdition
           
protected  BeLabel myEditionLabel
           
protected  BeEdition myHistory
           
protected  ID myHistoryClub
           
protected  WeakPtrArray myLockingWork
           
protected  BertProp myOwnProp
           
protected  ID myReadClub
           
protected  ID myReviser
           
protected  IntegerVar myRevisionCount
           
protected  IntegerVar myRevisionTime
           
protected  PrimSet myRevisionWatchers
           
protected  IDRegion mySponsors
           
 
Fields inherited from class org.abora.gold.be.basic.BeRangeElement
myFeRangeElements, myHCrum, myOwner, mySensorCrum
 
Fields inherited from class org.abora.gold.snarf.Abraham
DismantleStatistics, myHash, myInfo, myToken, TheTokenSource
 
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
BeWork(FeEdition contents, boolean isClub)
           
BeWork(Rcvr receiver)
           
 
Method Summary
 void addRevisionWatcher(FeWork work)
          Tell the FE Work whenever this Work is revised
 void addSponsors(IDRegion clubs)
           
 boolean canBeEditedBy(FeKeyMaster km)
          Answer whether the KeyMaster has the authority to edit this work.
 boolean canBeReadBy(FeKeyMaster km)
          Return true if the KeyMaster has the authority to read this Work.
 FeEdition edition()
          The current Edition.
Note: If this is an unsponsored Work, the Edition might have been discarded, and this
operation will blast.
 void endorse(CrossRegion endorsements)
          Adds to the endorsements on this Work.
 CrossRegion endorsements()
          All endorsements which have been placed on this Work.
 ID fetchEditClub()
          The edit Club, or NULL if there is none
 ID fetchHistoryClub()
          The history Club, or NULL if there is none
 FeWork fetchLockingWork()
          The Work which has this locked, or NULL if noone does.
 ID fetchReadClub()
          The read Club, or NULL if there is none
 void finishCreation()
          Gets called once the object is created, to finish up
 boolean isPurgeable()
          Return false only if the object cannot be flushed to disk.
 ID lastRevisionAuthor()
          The Club who made the last revision
 IntegerVar lastRevisionNumber()
          The sequence number of the last revision of this Work.
 IntegerVar lastRevisionTime()
          The time of the last revision of this Work.
 BertProp localProp()
           
static Heaper make(FeEdition edition)
           
 FeRangeElement makeFe(BeLabel label)
          Make a front end object (session level) for this backend object.
 FeWork makeLockedFeWork()
          Make a frontend Work on me and lock it if possible.
 void printOn(java.io.PrintWriter oo)
           
 BertProp prop()
           
 void propChange(PropChange change, Prop nw)
           
 void recordHistory()
          Change the current edition and notify anyone who cares about the revision
 void removeLastRevisionWatcher()
          Inform the work that its last revision watcher is gone.
 void removeRevisionWatcher(FeWork work)
          Remove a previously added RevisionWatcher
 void removeSponsors(IDRegion clubs)
           
 void restartWork(Rcvr rcvr)
           
 void retract(CrossRegion endorsements)
          Removes endorsements from this Work.
 void revise(FeEdition edition)
          Change the current edition and notify anyone who cares about the revision
 BeEdition revisions()
          If there isn't already a shared Trail on this Work, create a new one.
 void sendSelfTo(Xmtr xmtr)
          do nothing
 void setEditClub(ID club)
          Change the edit Club (or remove it if NULL).
 void setHistoryClub(ID club)
          Change the history Club (or remove it if NULL).
 void setReadClub(ID club)
          Change the read Club (or remove it if NULL).
 void sponsor(IDRegion clubs)
          Add new sponsors to the Work, and notify the Clubs
 IDRegion sponsors()
           
 boolean tryLock(FeWork work)
          Try to lock with the give FE Work.
 boolean tryUnlock(FeWork work)
          If the given FE Work is locking, then unlock and return TRUE; else return FALSE with no
change in lock state
 void unendorse(CrossRegion endorsements)
           
 void unsponsor(IDRegion clubs)
          Remove sponsors from the Work, and notify the Clubs
 void updateFeStatus()
          Tell all the FeWorks on this one to update their status
 
Methods inherited from class org.abora.gold.be.basic.BeRangeElement
addFeRangeElement, addOParent, anyPasses, becomeOther, bertCrum, checkRecorders, checkRecorders, contentsHash, delayedStoreBackfollow, delayedStoreBackfollow, dismantle, feRangeElements, hCrum, inspect, inTrace, makeIdentical, mappingTo, owner, removeFeRangeElement, removeOParent, restartRE, sensorCrum, setOwner, storeBackfollow, updateBCrumTo, works
 
Methods inherited from class org.abora.gold.snarf.Abraham
actualHashForEqual, becomeStub, cleanupGarbage, destroy, destruct, diskUpdate, dismantleStatistics, fetchInfo, fetchShepherd, flockInfo, forget, getInfo, getShepherdStubCategory, initTimeNonInherited, isConstructed, isDestructed, isEqual, isKindOf, isShepherd, isStub, isUnlocked, linkTimeNonInherited, newShepherd, remember, restartAbraham, restartAbraham, returnToken, staticTimeNonInherited, token
 
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, 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, 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, make, makeClassTable, makeFillTable, makeRequestTable, mangle, markChildren, markCount, markInstances, mayBecome, mayBecomeAnySubclassOf, new1, newX, nonCopyVariables, notWorking, pack, packageClasses, packagingCategory, parseExportName, passe, pointerToStaticMember, pointerToStaticMember, pointerToVirtualMember, preorderMax, preorderNumber, 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, 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

myEdition

protected BeEdition myEdition

myEditionLabel

protected BeLabel myEditionLabel

myReadClub

protected ID myReadClub

myEditClub

protected ID myEditClub

myOwnProp

protected BertProp myOwnProp

myHistory

protected BeEdition myHistory

myHistoryClub

protected ID myHistoryClub

myRevisionCount

protected IntegerVar myRevisionCount

myRevisionTime

protected IntegerVar myRevisionTime

myReviser

protected ID myReviser

mySponsors

protected IDRegion mySponsors

myLockingWork

protected WeakPtrArray myLockingWork

myRevisionWatchers

protected PrimSet myRevisionWatchers
Constructor Detail

BeWork

public BeWork(FeEdition contents,
              boolean isClub)

BeWork

public BeWork(Rcvr receiver)
Method Detail

canBeEditedBy

public boolean canBeEditedBy(FeKeyMaster km)
Answer whether the KeyMaster has the authority to edit this work.


canBeReadBy

public boolean canBeReadBy(FeKeyMaster km)
Return true if the KeyMaster has the authority to read this Work.


fetchLockingWork

public FeWork fetchLockingWork()
The Work which has this locked, or NULL if noone does.


makeLockedFeWork

public FeWork makeLockedFeWork()
Make a frontend Work on me and lock it if possible.


tryLock

public boolean tryLock(FeWork work)
Try to lock with the give FE Work. Return TRUE if successful


tryUnlock

public boolean tryUnlock(FeWork work)
If the given FE Work is locking, then unlock and return TRUE; else return FALSE with no
change in lock state


addRevisionWatcher

public void addRevisionWatcher(FeWork work)
Tell the FE Work whenever this Work is revised


edition

public FeEdition edition()
The current Edition.
Note: If this is an unsponsored Work, the Edition might have been discarded, and this
operation will blast.


lastRevisionAuthor

public ID lastRevisionAuthor()
The Club who made the last revision


lastRevisionNumber

public IntegerVar lastRevisionNumber()
The sequence number of the last revision of this Work.


lastRevisionTime

public IntegerVar lastRevisionTime()
The time of the last revision of this Work.


recordHistory

public void recordHistory()
Change the current edition and notify anyone who cares about the revision


removeLastRevisionWatcher

public void removeLastRevisionWatcher()
Inform the work that its last revision watcher is gone.


removeRevisionWatcher

public void removeRevisionWatcher(FeWork work)
Remove a previously added RevisionWatcher


revise

public void revise(FeEdition edition)
Change the current edition and notify anyone who cares about the revision


revisions

public BeEdition revisions()
If there isn't already a shared Trail on this Work, create a new one. Return it


fetchEditClub

public ID fetchEditClub()
The edit Club, or NULL if there is none


fetchHistoryClub

public ID fetchHistoryClub()
The history Club, or NULL if there is none


fetchReadClub

public ID fetchReadClub()
The read Club, or NULL if there is none


setEditClub

public void setEditClub(ID club)
Change the edit Club (or remove it if NULL).


setHistoryClub

public void setHistoryClub(ID club)
Change the history Club (or remove it if NULL).


setReadClub

public void setReadClub(ID club)
Change the read Club (or remove it if NULL).


endorse

public void endorse(CrossRegion endorsements)
Adds to the endorsements on this Work. The set of endorsements must be a finite number of
(club ID, token ID) pairs. This requires the authority of all of the Clubs used to
endorse. The token IDs must not be named IDs.


endorsements

public CrossRegion endorsements()
All endorsements which have been placed on this Work. The Edition::transclusions ()
operation will be able to find the current Edition of this Work by filtering for these
endorsements; they are also used to filter various other operations which directly return
sets of Works.


localProp

public BertProp localProp()

prop

public BertProp prop()

propChange

public void propChange(PropChange change,
                       Prop nw)

retract

public void retract(CrossRegion endorsements)
Removes endorsements from this Work. This requires the authority of all of the Clubs whose
endorsements are in the list. Ignores all endorsements which you could have removed, but
which don't happen to be there right now.


isPurgeable

public boolean isPurgeable()
Description copied from class: Abraham
Return false only if the object cannot be flushed to disk. This will probably
only be false for Stamps and the like that contain session level pointers.

Overrides:
isPurgeable in class BeRangeElement

makeFe

public FeRangeElement makeFe(BeLabel label)
Description copied from class: BeRangeElement
Make a front end object (session level) for this backend object. If the receiver is an
Edition, there had better be a label.

Overrides:
makeFe in class BeRangeElement

sponsor

public void sponsor(IDRegion clubs)
Add new sponsors to the Work, and notify the Clubs


sponsors

public IDRegion sponsors()

unsponsor

public void unsponsor(IDRegion clubs)
Remove sponsors from the Work, and notify the Clubs


updateFeStatus

public void updateFeStatus()
Tell all the FeWorks on this one to update their status


restartWork

public void restartWork(Rcvr rcvr)

addSponsors

public void addSponsors(IDRegion clubs)

removeSponsors

public void removeSponsors(IDRegion clubs)

unendorse

public void unendorse(CrossRegion endorsements)

finishCreation

public void finishCreation()
Gets called once the object is created, to finish up


printOn

public void printOn(java.io.PrintWriter oo)
Overrides:
printOn in class Heaper

sendSelfTo

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

Overrides:
sendSelfTo in class BeRangeElement

make

public static Heaper make(FeEdition edition)


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