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

com.mockrunner.connector.InteractionImplementor Maven / Gradle / Ivy

package com.mockrunner.connector;

import javax.resource.ResourceException;
import javax.resource.cci.InteractionSpec;
import javax.resource.cci.Record;

/**
 * Implementations of this interface can be addded to {@link InteractionHandler}.
 * When one of the two execute methods of {@link com.mockrunner.mock.connector.cci.MockInteraction}
 * are called, the {@link InteractionHandler} iterates through the implementors
 * and dispatches the execute call to the first one which returns
 * true for {@link #canHandle}.
 * There are several implementations of this interface, e.g.
 * {@link StreamableRecordByteArrayInteraction},
 * {@link WSIFInteraction},
 * {@link IndexedRecordInteraction},
 * {@link MappedRecordInteraction}.
 * Of course, you can also implement your own version and it may be necessary
 * in many situations.
 */
public interface InteractionImplementor 
{
    /**
     * Implementors should return true if this implementor can handle the request.
     * Please note that for calls to {@link #execute(InteractionSpec, Record)},
     * the second Record parameter is null.
     * @param interactionSpec the InteractionSpec for the actual call
     * @param actualRequest the request for the actual call
     * @param actualResponse the response for the actual call, may be null
     * @return true if this implementor will handle the request and
     *         will return the specified response, false otherwise
     */
    public boolean canHandle(InteractionSpec interactionSpec, Record actualRequest, Record actualResponse);
    
    /**
     * First version of the Interaction.execute methods.
     * @param interactionSpec the interaction spec
     * @param actualRequest the actual request
     * @return the response according to the current request
     */
    public Record execute(InteractionSpec interactionSpec, Record actualRequest) throws ResourceException;
    
    /**
     * Second version of the Interaction.execute methods.
     * @param interactionSpec the interaction spec
     * @param actualRequest the actual request
     * @param actualResponse the actual response
     * @return true under normal conditions
     */
    public boolean execute(InteractionSpec interactionSpec, Record actualRequest, Record actualResponse) throws ResourceException;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy