org.abora.gold.cross
Class CrossOrderSpec

java.lang.Object
  |
  +--org.abora.gold.java.AboraHeaper
        |
        +--org.abora.gold.xpp.basic.Heaper
              |
              +--org.abora.gold.spaces.basic.OrderSpec
                    |
                    +--org.abora.gold.cross.CrossOrderSpec

public class CrossOrderSpec
extends OrderSpec

myLexOrder lists the lexicographic order in which each dimension should be processed.
Every dimension should be listed exactly one, from most significant (at index 0) to least
significant.
mySubOrders are indexed by *dimension*, not by lexicographic order. In order to index by
lex order, look up the dimension in myLexOrder, and then look up the resulting dimension
number in mySubOrders.


Field Summary
protected  PrimIntArray myLexOrder
           
protected  CrossSpace mySpace
           
protected  PtrArray mySubOrders
           
 
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
CrossOrderSpec(CrossSpace space, PtrArray subOrders, PrimIntArray lexOrder)
           
CrossOrderSpec(Rcvr receiver)
           
 
Method Summary
 int actualHashForEqual()
           
 CoordinateSpace coordinateSpace()
          Essential.
static CrossOrderSpec fetchAscending(GenericCrossSpace space, PtrArray subSpaces)
          Only used during construction; must pass the array in explicitly since the space isnt
initialized yet
static CrossOrderSpec fetchDescending(GenericCrossSpace space, PtrArray subSpaces)
          Only used during construction; must pass the array in explicitly since the space isnt
initialized yet
 boolean follows(Position x, Position y)
          Essential.
static void info()
          {Int32Array CLIENT} lexOrder
{OrderSpec CLIENT} subOrder: i {Int32}
{PtrArray CLIENT of: OrderSpec} subOrders
 boolean isEqual(Heaper other)
          Return true if the two objects are equal.
 boolean isFullOrder(XnRegion keys)
          Essential.
 PrimIntArray lexOrder()
          Lists the lexicographic order in which each dimension should be processed.
static Heaper make(CrossSpace space, PtrArray subOrderings, PrimIntArray lexOrder)
           
static Heaper make(java.lang.Object space)
           
static Heaper make(java.lang.Object space, java.lang.Object subOrderings)
           
 boolean preceeds(XnRegion before, XnRegion after)
          Return true if some position in before is less than or equal to all positions in after.
 void sendSelfTo(Xmtr xmtr)
          do nothing
 OrderSpec subOrder(int i)
          The sub OrderSpec used for the given axis.
 PtrArray subOrders()
          The sub OrderSpec used for each axis in the space.
 
Methods inherited from class org.abora.gold.spaces.basic.OrderSpec
arrange, ascending, compare, descending, export, followsInt, isFullOrder, reversed
 
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, linkTimeNonInherited, 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, 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

mySpace

protected CrossSpace mySpace

mySubOrders

protected PtrArray mySubOrders

myLexOrder

protected PrimIntArray myLexOrder
Constructor Detail

CrossOrderSpec

public CrossOrderSpec(CrossSpace space,
                      PtrArray subOrders,
                      PrimIntArray lexOrder)

CrossOrderSpec

public CrossOrderSpec(Rcvr receiver)
Method Detail

coordinateSpace

public CoordinateSpace coordinateSpace()
Description copied from class: OrderSpec
Essential. Like Positions, Dsps, and XuRegions, an OrderSpec is specific to one
coordinate space. It is an error to use the generic protocol on objects from different
coordinate spaces.

Overrides:
coordinateSpace in class OrderSpec

lexOrder

public PrimIntArray lexOrder()
Lists the lexicographic order in which each dimension should be processed. Every
dimension is listed exactly once, from most significant (at index 0) to least significant.


subOrder

public OrderSpec subOrder(int i)
The sub OrderSpec used for the given axis. Note that this is *not* in lex order.


subOrders

public PtrArray subOrders()
The sub OrderSpec used for each axis in the space. Note that this is *not* in lex order,
but rather indexed by axis number.


actualHashForEqual

public int actualHashForEqual()
Overrides:
actualHashForEqual in class OrderSpec

follows

public boolean follows(Position x,
                       Position y)
Description copied from class: OrderSpec
Essential. Compare the two and return true if x is known to follow y in the ordering.
This message is the 'greater than or equal to' equivalent for this ordering. It must have
those properties a mathematician would demand of a '>=' on a partial order:
os->follows(a, a) (reflexivity)
os->follows(a, b) && os->follows(b, c) implies os->follows(a, c) (transitivity)
os->follows(a, b) && os->follows(b, a) implies a->isEqual(b) (what's the name for this?)

Overrides:
follows in class OrderSpec

isEqual

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

Overrides:
isEqual in class OrderSpec

isFullOrder

public boolean isFullOrder(XnRegion keys)
Essential. If this returns TRUE, then I define a full order over all positions in 'keys'
(or all positions in the space if 'keys' is NULL). However, if I return FALSE, that
doesn't guarantee that I don't define a full ordering. I may happen to define a full
ordering without knowing it.
A full ordering is one in which for each a, b in keys; either this->follows(a, b) or
this->follows(b, a).

Overrides:
isFullOrder in class OrderSpec

preceeds

public boolean preceeds(XnRegion before,
                        XnRegion after)
Return true if some position in before is less than or equal to all positions in after.

Overrides:
preceeds in class OrderSpec

sendSelfTo

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

Overrides:
sendSelfTo in class OrderSpec

make

public static Heaper make(CrossSpace space,
                          PtrArray subOrderings,
                          PrimIntArray lexOrder)

make

public static Heaper make(java.lang.Object space)

make

public static Heaper make(java.lang.Object space,
                          java.lang.Object subOrderings)

fetchAscending

public static CrossOrderSpec fetchAscending(GenericCrossSpace space,
                                            PtrArray subSpaces)
Only used during construction; must pass the array in explicitly since the space isnt
initialized yet


fetchDescending

public static CrossOrderSpec fetchDescending(GenericCrossSpace space,
                                             PtrArray subSpaces)
Only used during construction; must pass the array in explicitly since the space isnt
initialized yet


info

public static void info()
{Int32Array CLIENT} lexOrder
{OrderSpec CLIENT} subOrder: i {Int32}
{PtrArray CLIENT of: OrderSpec} subOrders



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