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

kikaha.uworkers.core.WrappedExchange Maven / Gradle / Ivy

package kikaha.uworkers.core;

import java.util.function.BiConsumer;
import kikaha.uworkers.api.Exchange;
import lombok.RequiredArgsConstructor;

/**
 * Wraps an exchange to send a new value as reply to a former sender.
 */
@RequiredArgsConstructor(staticName = "wrap")
public class WrappedExchange implements Exchange {

	final Object request;
	final Exchange listener;

	@Override
	public  REQ requestAs( Class requestType ) {
		return (REQ)request;
	}

	@Override
	public  REQ request() {
		return (REQ)request;
	}

	@Override
	public  Exchange reply( RESP response ) {
		listener.reply( response );
		return this;
	}

	@Override
	public Exchange reply(Throwable error) {
		listener.reply(error);
		return this;
	}

	@Override
	public Exchange then(BiConsumer listener) {
		this.listener.then( listener );
		return this;
	}

	@Override
	public  RESP response() {
		throw new UnsupportedOperationException("response not available here!");
	}

	@Override
	public  RESP responseAs(Class targetClass) {
		throw new UnsupportedOperationException("responseAs not available here!");
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy