
org.squirrelframework.foundation.component.impl.HeartbeatImpl Maven / Gradle / Ivy
package org.squirrelframework.foundation.component.impl;
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
import org.squirrelframework.foundation.component.Heartbeat;
import org.squirrelframework.foundation.component.SquirrelComponent;
import com.google.common.base.Preconditions;
public class HeartbeatImpl implements Heartbeat, SquirrelComponent {
private final Stack> stack = new Stack>();
@Override
public void begin() {
List beat = new ArrayList();
stack.push(beat);
}
@Override
public void execute() {
List beat = stack.pop();
for (Runnable r : beat) {
r.run();
}
}
@Override
public void defer(Runnable command) {
Preconditions.checkNotNull(command);
stack.peek().add(command);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy