public void step() { myPosition = myPosition.minus(IntegerValue.one()); if (myIndex >= 0 && (myPosition.isLT(myEdges.integerVarAt(myIndex)))) { myIndex = myIndex - 2; if (myIndex >= -1) { myPosition = (myEdges.integerVarAt(myIndex + 1)).minus(IntegerValue.one()); } } /* udanax-top.st:53451:DescendingIntegerStepper methodsFor: 'accessing'! {void} step myPosition _ myPosition - 1. (myIndex >= Int32Zero and: [myPosition < (myEdges integerVarAt: myIndex)]) ifTrue: [myIndex _ myIndex - 2. myIndex >= -1 ifTrue: [myPosition _ (myEdges integerVarAt: myIndex + 1) - 1]]! */ }