Package org.rootservices.otter.dispatch
Class RouteRun<S extends DefaultSession,U extends DefaultUser>
- java.lang.Object
-
- org.rootservices.otter.dispatch.RouteRun<S,U>
-
- All Implemented Interfaces:
RouteRunner
public class RouteRun<S extends DefaultSession,U extends DefaultUser> extends java.lang.Object implements RouteRunner
-
-
Constructor Summary
Constructors Constructor Description RouteRun(Route<S,U> route, RequestTranslator<S,U> requestTranslator, AnswerTranslator<S> answerTranslator, java.util.Map<StatusCode,Resource<S,U>> errorResources)
-
Method Summary
Modifier and Type Method Description protected Response<S>execute(Method method, Resource<S,U> resource, Request<S,U> request, Response<S> response)protected voidexecuteBetween(java.util.List<Between<S,U>> betweens, Method method, Request<S,U> request, Response<S> response)protected ResponseEither<S,U>executeResourceMethod(Route<S,U> route, Request<S,U> request, Response<S> response)This executes a route's before betweens, resource method, and the after betweens.AnswerTranslator<S>getAnswerTranslator()RequestTranslator<S,U>getRequestTranslator()Route<S,U>getRoute()protected java.util.Optional<Answer>handle(StatusCode statusCode, java.lang.Throwable cause, Ask ask, Answer answer)protected AnswerhandleErrors(ResponseError<S,U> error, Ask ask, Answer answer)protected Answerprocess(Ask ask, Answer answer)Answerrun(Ask ask, Answer answer)
-
-
-
Constructor Detail
-
RouteRun
public RouteRun(Route<S,U> route, RequestTranslator<S,U> requestTranslator, AnswerTranslator<S> answerTranslator, java.util.Map<StatusCode,Resource<S,U>> errorResources)
-
-
Method Detail
-
run
public Answer run(Ask ask, Answer answer) throws HaltException
- Specified by:
runin interfaceRouteRunner- Throws:
HaltException
-
process
protected Answer process(Ask ask, Answer answer) throws HaltException
- Throws:
HaltException
-
handleErrors
protected Answer handleErrors(ResponseError<S,U> error, Ask ask, Answer answer) throws HaltException
- Throws:
HaltException
-
handle
protected java.util.Optional<Answer> handle(StatusCode statusCode, java.lang.Throwable cause, Ask ask, Answer answer)
-
executeResourceMethod
protected ResponseEither<S,U> executeResourceMethod(Route<S,U> route, Request<S,U> request, Response<S> response)
This executes a route's before betweens, resource method, and the after betweens. If any exceptions occur it will populate the right ivar of the RestReponseEither that is returned. An Either is used for the response type in order to handle exceptions. The handlers should have access to the various request and response objects which are parameterized types. Exceptions cannot have generic typed parameters.- Parameters:
route- the route to execute.request- the request to process.response- the response to process.- Returns:
- A ReponseEither, if left is present then it executed correctly. If right is present then an error occurred and it should be handled.
-
execute
protected Response<S> execute(Method method, Resource<S,U> resource, Request<S,U> request, Response<S> response)
-
executeBetween
protected void executeBetween(java.util.List<Between<S,U>> betweens, Method method, Request<S,U> request, Response<S> response) throws HaltException
- Throws:
HaltException
-
getRequestTranslator
public RequestTranslator<S,U> getRequestTranslator()
-
getAnswerTranslator
public AnswerTranslator<S> getAnswerTranslator()
-
-