package org.jboss.seam.test.unit;
import java.util.concurrent.CountDownLatch;
public class InvocationControl
{
private String name;
private CountDownLatch start = new CountDownLatch(1);
private CountDownLatch started = new CountDownLatch(1);
private CountDownLatch finish = new CountDownLatch(1);
private CountDownLatch finished = new CountDownLatch(1);
public InvocationControl(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public void init() {
await(start);
}
public void start() {
start.countDown();
await(started);
}
public void markStarted() {
started.countDown();
await(finish);
}
public void finish() {
finish.countDown();
await(finished);
}
public void markFinished() {
finished.countDown();
}
private void await(CountDownLatch l) {
try
{
l.await();
}
catch (InterruptedException e)
{
}
}
}