package com.github.bjuvensjo.rsimulator.core;
import com.google.inject.ImplementedBy;
import java.util.Optional;
/**
* The Simulator encapsulates the simulation logic.
*
* @author Magnus Bjuvensjö
*/
@ImplementedBy(SimulatorImpl.class)
public interface Simulator {
/**
* Returns a SimulatorResponse that matches the specified request.
*
* @param rootPath the root path on which to search recursively for matches to the specified request
* @param rootRelativePath the path on which to search recursively for matches to the specified request
* @param request the request
* @param contentType the content type of the request, e.g. txt or xml
* @return a SimulatorResponse that matches the specified request
*/
Optional<SimulatorResponse> service(String rootPath, String rootRelativePath, String request, String contentType);
}