Package org.movealong.sly.app
Interface Stopper<M extends com.jnape.palatable.lambda.monad.Monad<?,M>>
-
- Type Parameters:
M- the monad type
public interface Stopper<M extends com.jnape.palatable.lambda.monad.Monad<?,M>>StarterandStopperform a mechanism for controlling an application component that requires set up and tear down. TheAppclass provides thestartmethod which properly invokes this functionality for components whose lifecycle runs matches the lifecycle of the application. However, it is also possible to useStarterandStopperat any time in an application's life to control the lifecycle of a component, for example to control one that is request- scoped.- See Also:
Starter
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default Stopper<M>andThen(Stopper<M> next)default <N extends com.jnape.palatable.lambda.monad.Monad<?,N>>
Stopper<N>mapStopper(com.jnape.palatable.winterbourne.NaturalTransformation<M,N> trans)<MU extends com.jnape.palatable.lambda.monad.Monad<com.jnape.palatable.lambda.adt.Unit,M>>
MUstop()Stops an application component, returning aUnitin a monadic context.static <M extends com.jnape.palatable.lambda.monad.Monad<?,M>>
Stopper<M>stopper(com.jnape.palatable.lambda.functions.Fn0<? extends com.jnape.palatable.lambda.monad.Monad<com.jnape.palatable.lambda.adt.Unit,M>> stopper)A convenience method for creating aStopperfrom a lambda expression.
-
-
-
Method Detail
-
stop
<MU extends com.jnape.palatable.lambda.monad.Monad<com.jnape.palatable.lambda.adt.Unit,M>> MU stop()
Stops an application component, returning aUnitin a monadic context. It is expected that this method will be invoked, and the monadic effect of the returned value run at the appropriate time. Failure to do so should be considered a resource leak.- Type Parameters:
MU- theUnitwrapped in the monad type- Returns:
- a
Unitin a monadic context
-
mapStopper
default <N extends com.jnape.palatable.lambda.monad.Monad<?,N>> Stopper<N> mapStopper(com.jnape.palatable.winterbourne.NaturalTransformation<M,N> trans)
- Type Parameters:
N- the newMonadtype- Parameters:
trans- theNaturalTransformationto apply- Returns:
- A
Stopperwith parametric typeN
-
stopper
static <M extends com.jnape.palatable.lambda.monad.Monad<?,M>> Stopper<M> stopper(com.jnape.palatable.lambda.functions.Fn0<? extends com.jnape.palatable.lambda.monad.Monad<com.jnape.palatable.lambda.adt.Unit,M>> stopper)
A convenience method for creating aStopperfrom a lambda expression.- Type Parameters:
M- theMonadtype- Parameters:
stopper- aFn0that implementsstop- Returns:
- A
Stopper
-
-