org.abora.gold.nkernel
Class FeRangeElement

java.lang.Object
  |
  +--org.abora.gold.java.AboraHeaper
        |
        +--org.abora.gold.xpp.basic.Heaper
              |
              +--org.abora.gold.nkernel.FeRangeElement
Direct Known Subclasses:
FeDataHolder, FeEdition, FeIDHolder, FeLabel, FePlaceHolder, FeWork

public class FeRangeElement
extends Heaper

The kinds of objects which can be in the range of Editions.


Field Summary
 
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
FeRangeElement()
           
 
Method Summary
 int actualHashForEqual()
           
 void addFillDetector(FeFillDetector detector)
          Essential.
 FeRangeElement again()
          Essential.
 boolean becomeOther(FeRangeElement newIdentity)
           
 boolean canMakeIdentical(FeRangeElement newIdentity)
          Essential.
 BeCarrier carrier()
          Return an object that wraps up any run-time state that might be needed inside the Be
system.
 BeRangeElement fetchBe()
          If this has a reified Be object, then return it, else NULL
 FeFillDetector fillDetector()
          Essential.
 BeRangeElement getOrMakeBe()
          An individual BeRangeElement for this identity.
static void info()
          {void CLIENT} addFillDetector: detector {PrFillDetector}
{FeRangeElement CLIENT} again
{BooleanVar CLIENT} canMakeIdentical: newIdentity {FeRangeElement}
{BooleanVar CLIENT} isIdentical: other {FeRangeElement}
{FeLabel CLIENT} label
{void CLIENT} makeIdentical: newIdentity {FeRangeElement}
{ID CLIENT} owner
{FeRangeElement CLIENT} relabelled: label {FeLabel}
{void CLIENT} removeFillDetector: detector {PrFillDetector}
{void CLIENT} setOwner: clubID {ID}
{FeEdition CLIENT} transcluders
{FeEdition CLIENT} transcluders: directFilter {Filter default: NULL}
{FeEdition CLIENT} transcluders: directFilter {Filter default: NULL} with: indirectFilter
{Filter default: NULL}
{FeEdition CLIENT} transcluders: directFilter {Filter default: NULL} with: indirectFilter
{Filter default: NULL} with: flags {Int32 default: Int32Zero}
{FeEdition CLIENT} transcluders: directFilter {Filter default: NULL} with: indirectFilter
{Filter default: NULL} with: flags {Int32 default: Int32Zero} with: otherTrail {FeEdition
default: NULL}
{FeEdition CLIENT} works: filter {Filter default: NULL} with: flags {Int32 default:
Int32Zero} with: otherTrail {FeEdition default: NULL}
 void inspect()
          Sensor leftShiftDown
 boolean isEqual(java.lang.Object other)
           
 boolean isIdentical(FeRangeElement other)
          Essential.
 boolean isSameAs(FeRangeElement other)
           
 FeLabel label()
          Essential.
 void makeIdentical(FeRangeElement newIdentity)
          Essential.
 ID owner()
          Essential.
static FeRangeElement placeHolder()
          Make a single PlaceHolder.
 FeRangeElement relabelled(FeLabel label)
          Essential.
 void removeFillDetector(FeFillDetector detector)
          Essential.
 void setOwner(ID clubID)
          Essential.
 FeEdition transcluders()
           
 FeEdition transcluders(Filter directFilter)
           
 FeEdition transcluders(Filter directFilter, Filter indirectFilter)
           
 FeEdition transcluders(Filter directFilter, Filter indirectFilter, int flags)
           
 FeEdition transcluders(Filter directFilter, Filter indirectFilter, int flags, FeEdition otherTranscluders)
          All Editions which the CurrentKeyMaster can see, which transclude this RangeElement.
If a directFilter is given, then the visibleEndorsements on a Edition must match the
filter.
If an indirectFilter is given, then a resulting Edition must be contained in some readable
Edition whose visibleEndorsements match the filter.
If the directContainersOnly flag is set, then a resulting Edition must contain this
directly as a RangeElement; otherwise, indirect containment through Editions is allowed.
If the localPresentOnly flag is set, then only Editions currently known to this Server are
guaranteed to end up in the result; otherwise, Editions which come to satisfy the
conditions in the future, and those on other Servers, may also be found.
Equivalent to
FeServer::current ()->newEditionWith (, this)
->rangeTranscluders (NULL, directFilter, indirectFilter, flags, otherTranscluders).
static void validateEndorsement(CrossRegion endorsements, FeKeyMaster km)
          Check whether the endorsements are valid and authorized.
Blast appropriately if not.
static void validateSignature(IDRegion clubs, FeKeyMaster km)
          Check whether the signatures are valid and authorized.
Blast appropriately if not.
 FeEdition works()
           
 FeEdition works(Filter filter)
           
 FeEdition works(Filter filter, int flags)
           
 FeEdition works(Filter filter, int flags, FeEdition otherTranscluders)
          Essential.
 
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, 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
 

Constructor Detail

FeRangeElement

public FeRangeElement()
Method Detail

works

public FeEdition works()

works

public FeEdition works(Filter filter)

works

public FeEdition works(Filter filter,
                       int flags)

addFillDetector

public void addFillDetector(FeFillDetector detector)
Essential. When this PlaceHolder becomes any other kind of RangeElement, then the
Detector will be triggered with the new RangeElement. If this is already not a
PlaceHolder, then the Detector is triggered immediately with this RangeElement.
See FillRangeDetector::filled (RangeElement * newIdentity).


again

public FeRangeElement again()
Essential. An object reflecting the current identity of this object, in case it is a
PlaceHolder that has become something else since it was received from the Server.


canMakeIdentical

public boolean canMakeIdentical(FeRangeElement newIdentity)
Essential. Whether the identity of this object could be changed to the other.
Does not check whether the CurrentKeyMaster has authority to do it.
The restrictions on this operation depend on which subclass this is, but in general
(except for PlaceHolders) an object can only become another of the same type with the same
content.


fillDetector

public FeFillDetector fillDetector()
Essential. Return a FillDetector that will be triggered when this RangeElement becomes
something other than a PlaceHolder, or immeditely if this RangeElement is not currently a
PlaceHolder.
See FillRangeDetector::filled (RangeElement * newIdentity).


isIdentical

public boolean isIdentical(FeRangeElement other)
Essential. Return whether two objects have the same identity on the Server. Note that
this can change over time, if makeIdentical is used. However, for a given pair of
FeRangeElements, it can only change from not being the same to being the same while you
are holding onto them.


makeIdentical

public void makeIdentical(FeRangeElement newIdentity)
Essential. Change the identity of this object to the other. BLAST if unsuccessful.
Requires authority of the current owner; if the operation is successful, the owner will
appear to change to that of the other object.
Also requires enough permission on newIdentity to determine, by comparing content, whether
the operation would succeed.
The restrictions on this operation depend on which subclass this is, but in general
(except for PlaceHolders) an object can only become another of the same type with the same
content.


owner

public ID owner()
Essential. The Club which owns this RangeElement, and has the authority to make it become
something else, and to transfer ownership to someone else.


removeFillDetector

public void removeFillDetector(FeFillDetector detector)
Essential. Remove a Detector which had been added to this RangeElement. You should remove
every Detector you add, although they will go away automatically when a client session
terminates.


setOwner

public void setOwner(ID clubID)
Essential. Change the owner; must have the authority of the current owner.


transcluders

public FeEdition transcluders(Filter directFilter,
                              Filter indirectFilter,
                              int flags,
                              FeEdition otherTranscluders)
All Editions which the CurrentKeyMaster can see, which transclude this RangeElement.
If a directFilter is given, then the visibleEndorsements on a Edition must match the
filter.
If an indirectFilter is given, then a resulting Edition must be contained in some readable
Edition whose visibleEndorsements match the filter.
If the directContainersOnly flag is set, then a resulting Edition must contain this
directly as a RangeElement; otherwise, indirect containment through Editions is allowed.
If the localPresentOnly flag is set, then only Editions currently known to this Server are
guaranteed to end up in the result; otherwise, Editions which come to satisfy the
conditions in the future, and those on other Servers, may also be found.
Equivalent to
FeServer::current ()->newEditionWith (, this)
->rangeTranscluders (NULL, directFilter, indirectFilter, flags, otherTranscluders).


works

public FeEdition works(Filter filter,
                       int flags,
                       FeEdition otherTranscluders)
Essential. Works which contain this RangeElement and can be read by the CurrentKeyMaster.
Returns an IDSpace Edition full of PlaceHolders, which will be filled with Works as
results come in.
If a filter is given, then only Works whose endorsements pass the Filter are returned.
If localPresentOnly flag is set, then only Works currently known to this Server are
returned; otherwise, as new Works come to be known to the Server, they are filled into the
resulting Edition.
If directContainersOnly is set, and this is an Edition, then only Works which are directly
on this Edition are returned (and not Works which are on Editions which have this one as
sub-Editions).
{ | w's contains self, w passes filter}


carrier

public BeCarrier carrier()
Return an object that wraps up any run-time state that might be needed inside the Be
system. Right now that means labels.


fetchBe

public BeRangeElement fetchBe()
If this has a reified Be object, then return it, else NULL


getOrMakeBe

public BeRangeElement getOrMakeBe()
An individual BeRangeElement for this identity. If the object is virtualized, then
de-virtualizes it.


inspect

public void inspect()
Sensor leftShiftDown

Overrides:
inspect in class AboraHeaper

transcluders

public FeEdition transcluders()

transcluders

public FeEdition transcluders(Filter directFilter)

transcluders

public FeEdition transcluders(Filter directFilter,
                              Filter indirectFilter)

transcluders

public FeEdition transcluders(Filter directFilter,
                              Filter indirectFilter,
                              int flags)

label

public FeLabel label()
Essential. Return the label attached to this FeRangeElement. (An FeRangeElement holds a
BeRangeElement and a label.) All FeRangeElements have a label attached to them when they
are created (in the various Server::newRangeElement operations). Derived Editions have
the same the label as the Edition they were derived from (e.g. the receiver of copy,
combine, replace, transformedBy, etc.) Labels may be available only on Editions in 1.0.
(While this is in force, label() will blast if sent to other kinds of FeEditions.)


relabelled

public FeRangeElement relabelled(FeLabel label)
Essential. Return a new FeRangeElement with the same identity and contents (i.e. holding
the same BeRangeElement), but with a different label. (Get new labels from
FeServer::newLabel())


becomeOther

public boolean becomeOther(FeRangeElement newIdentity)

isSameAs

public boolean isSameAs(FeRangeElement other)

actualHashForEqual

public int actualHashForEqual()
Overrides:
actualHashForEqual in class Heaper

isEqual

public boolean isEqual(java.lang.Object other)

validateEndorsement

public static void validateEndorsement(CrossRegion endorsements,
                                       FeKeyMaster km)
Check whether the endorsements are valid and authorized.
Blast appropriately if not.


validateSignature

public static void validateSignature(IDRegion clubs,
                                     FeKeyMaster km)
Check whether the signatures are valid and authorized.
Blast appropriately if not.


info

public static void info()
{void CLIENT} addFillDetector: detector {PrFillDetector}
{FeRangeElement CLIENT} again
{BooleanVar CLIENT} canMakeIdentical: newIdentity {FeRangeElement}
{BooleanVar CLIENT} isIdentical: other {FeRangeElement}
{FeLabel CLIENT} label
{void CLIENT} makeIdentical: newIdentity {FeRangeElement}
{ID CLIENT} owner
{FeRangeElement CLIENT} relabelled: label {FeLabel}
{void CLIENT} removeFillDetector: detector {PrFillDetector}
{void CLIENT} setOwner: clubID {ID}
{FeEdition CLIENT} transcluders
{FeEdition CLIENT} transcluders: directFilter {Filter default: NULL}
{FeEdition CLIENT} transcluders: directFilter {Filter default: NULL} with: indirectFilter
{Filter default: NULL}
{FeEdition CLIENT} transcluders: directFilter {Filter default: NULL} with: indirectFilter
{Filter default: NULL} with: flags {Int32 default: Int32Zero}
{FeEdition CLIENT} transcluders: directFilter {Filter default: NULL} with: indirectFilter
{Filter default: NULL} with: flags {Int32 default: Int32Zero} with: otherTrail {FeEdition
default: NULL}
{FeEdition CLIENT} works: filter {Filter default: NULL} with: flags {Int32 default:
Int32Zero} with: otherTrail {FeEdition default: NULL}


placeHolder

public static FeRangeElement placeHolder()
Make a single PlaceHolder.



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