org.abora.gold.wrapper
Class FeWrapper

java.lang.Object
  |
  +--org.abora.gold.java.AboraHeaper
        |
        +--org.abora.gold.xpp.basic.Heaper
              |
              +--org.abora.gold.wrapper.FeWrapper
Direct Known Subclasses:
FeClubDescription, FeHyperLink, FeHyperRef, FeLockSmith, FePath, FeSet, FeText, FeWorkSet

public class FeWrapper
extends Heaper

An object which wraps an Edition, providing additional functionality for manipulating it
and enforcing invariants on the format.
Implementation note:
The fact that you cannot get the spec of a Wrapper is deliberate. You can merely check
that it is a kind of Edition you know, but no more; this makes it easy to compatibly add
new leaf classes below existing ones.


Field Summary
protected  FeEdition myEdition
           
protected  FeWrapper myInner
           
protected  FeWrapperSpec mySpec
           
protected static FeWrapperSpec TheWrapperSpec
           
 
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
FeWrapper(FeEdition edition, FeWrapper inner, FeWrapperSpec spec)
           
FeWrapper(FeEdition edition, FeWrapperSpec spec)
           
 
Method Summary
 int actualHashForEqual()
           
static boolean checkDomainHas(FeEdition edition, XnRegion required)
          Checks that the domain is in the right coordinate space and is a superset of the given
region
static boolean checkDomainIn(FeEdition edition, XnRegion limit)
          Checks that the domain is in the right coordinate space and a subset of the given region
static boolean checkSubEdition(FeEdition parent, Position key, FeWrapperSpec spec, boolean required)
          If there is a SubEdition at a key in an edition, and if a spec is supplied, that it can be
certified as the given type
static boolean checkSubEditions(FeEdition parent, XnRegion keys, FeWrapperSpec spec, boolean required)
          Check that everything in the region is an Edition, which can be certified with the given
type
static boolean checkSubSequence(FeEdition edition, Position key, boolean required)
          Whether there is an Edition there which can be successfully converted into a zero based
Sequence
static boolean checkSubSetEdition(FeEdition parent, Position key, FeWrapperSpec spec, boolean required)
          If there is a SubEdition at a key in an edition, that it can be wrapped as a Set, and if a
spec is supplied, that it only contains the given type
static boolean checkSubWork(FeEdition parent, Position key, boolean required)
          If there is a SubWork at a key in an edition
 FeEdition edition()
          Essential.
static void info()
          {FeEdition CLIENT} edition
{FeWrapper CLIENT} inner
{BooleanVar CLIENT} isWrappedAs: spec {FeWrapperSpec}
static void initTimeNonInherited()
           
 FeWrapper inner()
          Essential.
 boolean isEqual(java.lang.Object other)
           
 boolean isWrapperOf(FeWrapperSpec spec)
          Essential.
static void linkTimeNonInherited()
           
static void setSpec(FeWrapperSpec spec)
           
static FeWrapperSpec spec()
           
 
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, 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

myEdition

protected FeEdition myEdition

myInner

protected FeWrapper myInner

mySpec

protected FeWrapperSpec mySpec

TheWrapperSpec

protected static FeWrapperSpec TheWrapperSpec
Constructor Detail

FeWrapper

public FeWrapper(FeEdition edition,
                 FeWrapperSpec spec)

FeWrapper

public FeWrapper(FeEdition edition,
                 FeWrapper inner,
                 FeWrapperSpec spec)
Method Detail

edition

public FeEdition edition()
Essential. The primitive Edition this is wrapping.


inner

public FeWrapper inner()
Essential. The next Wrapper inside this one; blasts if this wraps an Edition directly.


isWrapperOf

public boolean isWrapperOf(FeWrapperSpec spec)
Essential. Return TRUE if this is wrapped as the given spec, or any one of its subtypes


actualHashForEqual

public int actualHashForEqual()
Overrides:
actualHashForEqual in class Heaper

isEqual

public boolean isEqual(java.lang.Object other)

initTimeNonInherited

public static void initTimeNonInherited()

linkTimeNonInherited

public static void linkTimeNonInherited()

setSpec

public static void setSpec(FeWrapperSpec spec)

spec

public static FeWrapperSpec spec()

checkDomainHas

public static boolean checkDomainHas(FeEdition edition,
                                     XnRegion required)
Checks that the domain is in the right coordinate space and is a superset of the given
region


checkDomainIn

public static boolean checkDomainIn(FeEdition edition,
                                    XnRegion limit)
Checks that the domain is in the right coordinate space and a subset of the given region


checkSubEdition

public static boolean checkSubEdition(FeEdition parent,
                                      Position key,
                                      FeWrapperSpec spec,
                                      boolean required)
If there is a SubEdition at a key in an edition, and if a spec is supplied, that it can be
certified as the given type


checkSubEditions

public static boolean checkSubEditions(FeEdition parent,
                                       XnRegion keys,
                                       FeWrapperSpec spec,
                                       boolean required)
Check that everything in the region is an Edition, which can be certified with the given
type


checkSubSequence

public static boolean checkSubSequence(FeEdition edition,
                                       Position key,
                                       boolean required)
Whether there is an Edition there which can be successfully converted into a zero based
Sequence


checkSubWork

public static boolean checkSubWork(FeEdition parent,
                                   Position key,
                                   boolean required)
If there is a SubWork at a key in an edition


checkSubSetEdition

public static boolean checkSubSetEdition(FeEdition parent,
                                         Position key,
                                         FeWrapperSpec spec,
                                         boolean required)
If there is a SubEdition at a key in an edition, that it can be wrapped as a Set, and if a
spec is supplied, that it only contains the given type


info

public static void info()
{FeEdition CLIENT} edition
{FeWrapper CLIENT} inner
{BooleanVar CLIENT} isWrappedAs: spec {FeWrapperSpec}



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