All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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