
io.jexxa.adapterapi.invocation.context.SupplierInvocationContext Maven / Gradle / Ivy
package io.jexxa.adapterapi.invocation.context;
import io.jexxa.adapterapi.interceptor.AroundInterceptor;
import io.jexxa.adapterapi.invocation.InvocationContext;
import io.jexxa.adapterapi.invocation.function.SerializableSupplier;
import java.lang.reflect.Method;
import java.util.Collection;
public class SupplierInvocationContext extends InvocationContext
{
private final SerializableSupplier supplier;
T returnValue;
Method method;
public SupplierInvocationContext(Object targetObject,
SerializableSupplier supplier,
Collection interceptors)
{
super(targetObject,interceptors);
this.supplier = supplier;
}
@Override
public void invoke()
{
returnValue = supplier.get();
}
@Override
public Method getMethod() {
if (method == null)
{
method = LambdaUtils.getImplMethod(getTarget(), supplier, getArgTypes());
}
return method;
}
@Override
public Object[] getArgs() {
return new Object[0];
}
@Override
public T getReturnValue() {
return returnValue;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy