public class EiffelStyleLoop extends Object implements Procedure
new EiffelStyleLoop()
.from(new Procedure() { public void run() {} }) // init code
.invariant(new Predicate() { public boolean test() {} }) // invariants
.variant(new Procedure() { public Object evaluate() {} }) // diminishing comparable value
// or
// .variant(new Predicate() { public boolean test() {} }) // more invariants
.until(new Predicate() { public boolean test() {} }) // terminating condition
.loop(new Procedure() { public void run() {} }) // the acutal loop
.run();
Note that new EiffelStyleLoop().run() executes just fine.
You only need to set the parts of the loop you want to use.| Constructor and Description |
|---|
EiffelStyleLoop() |
| Modifier and Type | Method and Description |
|---|---|
EiffelStyleLoop |
from(Procedure procedure) |
EiffelStyleLoop |
invariant(Predicate predicate) |
EiffelStyleLoop |
loop(Procedure procedure) |
void |
run() |
EiffelStyleLoop |
until(Predicate predicate) |
EiffelStyleLoop |
variant(Function<Object> function) |
EiffelStyleLoop |
variant(Predicate predicate) |
public EiffelStyleLoop()
public EiffelStyleLoop from(Procedure procedure)
public EiffelStyleLoop invariant(Predicate predicate)
public EiffelStyleLoop variant(Predicate predicate)
public EiffelStyleLoop variant(Function<Object> function)
public EiffelStyleLoop until(Predicate predicate)
public EiffelStyleLoop loop(Procedure procedure)
Copyright © 2003-2013 The Apache Software Foundation. All Rights Reserved.