@SuppressWarnings("unchecked")
	@Deprecated
	protected static <T> Mono<T> onLastAssembly(Mono<T> source) {
		Function<Publisher, Publisher> hook = Hooks.onLastOperatorHook;
		if(hook == null) {
			return source;
		}
		return (Mono<T>)Objects.requireNonNull(hook.apply(source), "LastOperator hook returned null");
	}
@SuppressWarnings("unchecked")
	@Deprecated
	protected static <T> Mono<T> onLastAssembly(Mono<T> source) {
		Function<Publisher, Publisher> hook = Hooks.onLastOperatorHook;
		if(hook == null) {
			return source;
		}
		return (Mono<T>)Objects.requireNonNull(hook.apply(source), "LastOperator hook returned null");
	}
@ SuppressWarnings ( "unchecked" ) @ Deprecated protected static < T > Mono < T > onLastAssembly ( Mono < T > source ) { Function < Publisher , Publisher > hook = Hooks . onLastOperatorHook ; if ( hook == null ) { return source ; } return ( Mono < T > ) Objects . requireNonNull ( hook . apply ( source ) , "LastOperator hook returned null" ) ; }
To be used by custom operators: invokes assembly {@link Hooks} pointcut given a
{@link Mono}, potentially returning a new {@link Mono}. This is for example useful
to activate cross-cutting concerns at assembly time, eg. a generalized
{@link #checkpoint()}.

@param <T> the value type
@param source the source to apply assembly hooks onto

@return the source, potentially wrapped with assembly time cross-cutting behavior
@deprecated use {@link Operators#onLastAssembly(CorePublisher)}
To be used by custom operators : invokes assembly { @link Hooks } pointcut given a { @link Mono } potentially returning a new { @link Mono } . This is for example useful to activate cross - cutting concerns at assembly time eg . a generalized { @link #checkpoint () } .