org.abora.gold.spaces.basic
Class OrderSpec

java.lang.Object
  |
  +--org.abora.gold.java.AboraHeaper
        |
        +--org.abora.gold.xpp.basic.Heaper
              |
              +--org.abora.gold.spaces.basic.OrderSpec
Direct Known Subclasses:
CrossOrderSpec, IDUpOrder, IntegerUpOrder, RealUpOrder, ReverseOrder, SequenceUpOrder

public class OrderSpec
extends Heaper

[documentation note: we need to hide the documentation about partial orders, but still
warn that the orders may become partial]. An OrderSpec for a given coordinate space
represents a partial ordering of all the Positions of that coordinate space. The
fundamental ordering relationship is "follows". The response of Positions to isGE defines
the natural, "ascending" partial order among the positions. Every coordinate space will
have at least this ascending and the corresponding descending OrderSpecs. OrderSpecs are
useful to specify in what order a stepper produced for stepping over positions should do
so.


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
OrderSpec(Rcvr receiver)
           
 
Method Summary
 int actualHashForEqual()
           
 Arrangement arrange(XnRegion region)
          Return an Arrangement of the positions in region according to the ordering of the
receiver.
static OrderSpec ascending(CoordinateSpace cs)
          Use CoordinateSpace::fetch/getAscending
 OrderEnum compare(Position x, Position y)
          Say what the relative ordering relationship is between x and y
 CoordinateSpace coordinateSpace()
          Essential.
static OrderSpec descending(CoordinateSpace cs)
          Use CoordinateSpace::fetch/getDescending
 PrimArray export()
           
 boolean follows(Position x, Position y)
          Essential.
 boolean followsInt(IntegerVar x, IntegerVar y)
          See discussion in XuInteger class comment about boxed vs unboxed integers
static void info()
          {CoordinateSpace CLIENT} coordinateSpace
{BooleanVar CLIENT} follows: x {Position} with: y {Position}
{OrderSpec CLIENT} reversed
 boolean isEqual(Heaper other)
          Return true if the two objects are equal.
 void isFullOrder()
           
 boolean isFullOrder(XnRegion keys)
          Essential.
 boolean preceeds(XnRegion before, XnRegion after)
          Return true if some position in before is less than or equal to all positions in after.
 OrderSpec reversed()
          Returns an OrderSpec representing the mirror image of my ordering.
o->follows(a, b) iff o->reverse()->follows(b, a)
 void sendSelfTo(Xmtr xmtr)
          do nothing
 
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, 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, 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
 

Constructor Detail

OrderSpec

public OrderSpec(Rcvr receiver)
Method Detail

isFullOrder

public void isFullOrder()

actualHashForEqual

public int actualHashForEqual()
Overrides:
actualHashForEqual in class Heaper

compare

public OrderEnum compare(Position x,
                         Position y)
Say what the relative ordering relationship is between x and y


follows

public boolean follows(Position x,
                       Position y)
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?)


followsInt

public boolean followsInt(IntegerVar x,
                          IntegerVar y)
See discussion in XuInteger class comment about boxed vs unboxed integers


isEqual

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

Overrides:
isEqual in class Heaper

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).


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.


arrange

public Arrangement arrange(XnRegion region)
Return an Arrangement of the positions in region according to the ordering of the
receiver.


coordinateSpace

public CoordinateSpace coordinateSpace()
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.


reversed

public OrderSpec reversed()
Returns an OrderSpec representing the mirror image of my ordering.
o->follows(a, b) iff o->reverse()->follows(b, a)


export

public PrimArray export()

sendSelfTo

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

Overrides:
sendSelfTo in class Heaper

ascending

public static OrderSpec ascending(CoordinateSpace cs)
Use CoordinateSpace::fetch/getAscending


descending

public static OrderSpec descending(CoordinateSpace cs)
Use CoordinateSpace::fetch/getDescending


info

public static void info()
{CoordinateSpace CLIENT} coordinateSpace
{BooleanVar CLIENT} follows: x {Position} with: y {Position}
{OrderSpec CLIENT} reversed



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