org.abora.white.cross
Class GenericCrossSimpleRegionStepper

java.lang.Object
  |
  +--org.abora.white.xpp.basic.Heaper
        |
        +--org.abora.white.collection.steppers.Stepper
              |
              +--org.abora.white.cross.GenericCrossSimpleRegionStepper

public class GenericCrossSimpleRegionStepper
extends Stepper


Field Summary
protected  Stepper myBoxes
           
protected  PtrArray mySimples
           
protected  CrossSpace mySpace
           
 
Fields inherited from class org.abora.white.collection.steppers.Stepper
TheEmptyStepper
 
Constructor Summary
GenericCrossSimpleRegionStepper(CrossSpace space, Stepper boxes)
           
GenericCrossSimpleRegionStepper(CrossSpace space, Stepper boxes, PtrArray simples)
           
 
Method Summary
 int actualHashForEqual()
          Defined by subclasses to produce the value returned by hashForEqual.
 Stepper copy()
          Return a new stepper which steps independently of me, but whose current value is the same as mine, and which must produce a future history of values which satisfies the same obligation that my contract obligates me to produce now.
 Heaper fetch()
          If I am exhausted (i.e., if (!! this->hasValue())), then return NULL.
 boolean hasValue()
          Iff I have a current value (i.e.
 boolean isEqual(Heaper other)
          Return true if the two objects are equal.
static GenericCrossSimpleRegionStepper make(CrossSpace space, Stepper boxes)
           
 void replenishSteppers(int index)
          Replenish all steppers starting at index
 void step()
          Essential.
 
Methods inherited from class org.abora.white.collection.steppers.Stepper
atEnd, emptyStepper, get, info, itemStepper, stepMany, stepMany, theOne
 
Methods inherited from class org.abora.white.xpp.basic.Heaper
destroy, destruct, equals, hashForEqual, printContentsOn, printOn, sendSelfTo, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

mySpace

protected CrossSpace mySpace

myBoxes

protected Stepper myBoxes

mySimples

protected PtrArray mySimples
Constructor Detail

GenericCrossSimpleRegionStepper

public GenericCrossSimpleRegionStepper(CrossSpace space,
                                       Stepper boxes)

GenericCrossSimpleRegionStepper

public GenericCrossSimpleRegionStepper(CrossSpace space,
                                       Stepper boxes,
                                       PtrArray simples)
Method Detail

fetch

public Heaper fetch()
Description copied from class: Stepper
If I am exhausted (i.e., if (!! this->hasValue())), then return NULL. Else return current element. I return wimpily since most items returned are held by collections. If I create a new object, I should cache it.

Specified by:
fetch in class Stepper

hasValue

public boolean hasValue()
Description copied from class: Stepper
Iff I have a current value (i.e. this message returns true), then I am not exhasted. 'fetch' and 'get' will both return this value, and I can be 'step'ped to my next state. As I am stepped, eventually I may become exhausted (the reverse of all the above), which is a permanent condition. Note that not all steppers have to be exhaustable. A Stepper which enumerates all primes is perfectly reasonable. Assuming otherwise will create infinite loops. See class comment.

Specified by:
hasValue in class Stepper

step

public void step()
Description copied from class: Stepper
Essential. If I am currently exhausted (see Stepper::hasValue()), then it is an error to step me. The result of doing so isn't currently specified (we probably should specify it to BLAST, but I know that the implementation doesn't currently live up to that spec). If I am not exhausted, then this advances me to my next state. If my current value (see Stepper::get()) was my final value, then I am now exhausted, otherwise my new current value is the next value.

Specified by:
step in class Stepper

replenishSteppers

public void replenishSteppers(int index)
Replenish all steppers starting at index


copy

public Stepper copy()
Description copied from class: Stepper
Return a new stepper which steps independently of me, but whose current value is the same as mine, and which must produce a future history of values which satisfies the same obligation that my contract obligates me to produce now. Typically, this will mean that he must produce the same future history that I'm going to produce. However, let's say that I am enumerating the elements of a partial order in some full order which is consistent with the partial order. If a copy of me is made after I'm part way through, then me and my copy may produce any future history compatable both with the partial order and the elements I've already produced by the time of the copy. Of course, a subclass or a Stepper creating message (like IntegerRegion::stepper()) may specify the more stringent requirement (that a copy must produce the same sequence). To prevent aliasing, Steppers should typically be passed by copy. See class comment.

Specified by:
copy in class Stepper

actualHashForEqual

public int actualHashForEqual()
Description copied from class: Heaper
Defined by subclasses to produce the value returned by hashForEqual.

Overrides:
actualHashForEqual in class Stepper

isEqual

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

Overrides:
isEqual in class Stepper

make

public static GenericCrossSimpleRegionStepper make(CrossSpace space,
                                                   Stepper boxes)


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