package org.webpieces.ctx.api; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; public class RequestContext { public static final String SECURE_TOKEN_FORM_NAME = "__secureToken"; //incoming router request private RouterRequest request; //the params parsed from the request url if any private Map<String, String> pathParams = new HashMap<>(); private Validation validation; private FlashSub flash; private Session session; private Messages messages; private List<OverwritePlatformResponse> callbacks = new ArrayList<>(); public RequestContext(Validation validation, FlashSub flash, Session session, RouterRequest request) { this.request = request; this.validation = validation; this.flash = flash; this.session = session; } public RouterRequest getRequest() { return request; } public Flash getFlash() { return flash; } public Validation getValidation() { return validation; } public Session getSession() { return session; } public Messages getMessages() { return messages; } public Map<String, String> getPathParams() { return pathParams; } /** * * @param secureFieldNames fieldNames that are secure and should NOT be transferred to flash */ public void moveFormParamsToFlash(Set<String> secureFieldNames) { Map<String, List<String>> fields = request.multiPartFields; flash.saveFormParams(fields, secureFieldNames); } public void setMessages(Messages messages) { this.messages = messages; } public void addModifyResponse(OverwritePlatformResponse callback) { this.callbacks.add(callback); } public List<OverwritePlatformResponse> getCallbacks() { return callbacks; } public void setPathParams(Map<String, String> pathParams2) { this.pathParams = pathParams2; } }