Encapsulates the result of a forwarded request returned by {@link #onForward(Request)}.
Applications must use methods {@link #success(Object)}, {@link #failure(Object)} or {@link #ignore(Object)}to signal to the implementation the result of the forwarded request.
{@link OortService} may forward a request action for an entity to the owner node, but before the requestarrives to the owner node, the entity may be removed from the owner node. When the owner node receives the request for the entity, the entity is not available anymore. Similarly, a request that is broadcast to all nodes arrives to nodes that do not own the entity. The node that receives the request must return a {@link Result} using the following rules:
- If the node owns the entity, use {@link #success(Object)} or {@link #failure(Object)} - never use{@link #ignore(Object)}
- If the node does not own the entity (it never was the owner, or it was the owner but it is not anymore), then use {@link #ignore(Object)}
@param < U> the result type
@see Request