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

bt.service.RuntimeLifecycleBinder Maven / Gradle / Ivy

There is a newer version: 1.10
Show newest version
package bt.service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;

/**
 *

Note that this class implements a service. * Hence, is not a part of the public API and is a subject to change.

*/ public class RuntimeLifecycleBinder implements IRuntimeLifecycleBinder { private Map> bindings; public RuntimeLifecycleBinder() { bindings = new HashMap<>(); for (LifecycleEvent event : LifecycleEvent.values()) { bindings.put(event, new ArrayList<>()); } } @Override public void onStartup(Runnable r) { bindings.get(LifecycleEvent.STARTUP).add(LifecycleBinding.bind(r).build()); } @Override public void onStartup(String description, Runnable r) { bindings.get(LifecycleEvent.STARTUP).add(LifecycleBinding.bind(r).description(description).build()); } @Override public void onStartup(LifecycleBinding binding) { bindings.get(LifecycleEvent.STARTUP).add(binding); } @Override public void onShutdown(Runnable r) { bindings.get(LifecycleEvent.SHUTDOWN).add(LifecycleBinding.bind(r).async().build()); } @Override public void onShutdown(String description, Runnable r) { bindings.get(LifecycleEvent.SHUTDOWN).add( LifecycleBinding.bind(r).description(description).async().build()); } @Override public void onShutdown(LifecycleBinding binding) { bindings.get(LifecycleEvent.SHUTDOWN).add(binding); } @Override public void addBinding(LifecycleEvent event, LifecycleBinding binding) { bindings.get(event).add(binding); } @Override public void visitBindings(LifecycleEvent event, Consumer consumer) { bindings.get(event).forEach(consumer::accept); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy