// Path: src/main/java/fabzo/kraken/wait/Wait.java
// public interface Wait {
//     boolean execute(final EnvironmentContext ctx, final InfrastructureComponent component);
// }


import fabzo.kraken.wait.Wait;
import io.vavr.collection.List;
package fabzo.kraken.components;



public abstract class InfrastructureComponent implements Named {
    private ComponentState state = ComponentState.WAITING;
// Path: src/main/java/fabzo/kraken/wait/Wait.java
// public interface Wait {
//     boolean execute(final EnvironmentContext ctx, final InfrastructureComponent component);
// }


// Path: src/main/java/fabzo/kraken/components/InfrastructureComponent.java
import fabzo.kraken.wait.Wait;
import io.vavr.collection.List;

package fabzo.kraken.components;



public abstract class InfrastructureComponent implements Named {
    private ComponentState state = ComponentState.WAITING;
    private List<Wait> waitFunctions = List.empty();