Example usage for org.springframework.web.bind ServletRequestUtils getRequiredStringParameters

List of usage examples for org.springframework.web.bind ServletRequestUtils getRequiredStringParameters

Introduction

In this page you can find the example usage for org.springframework.web.bind ServletRequestUtils getRequiredStringParameters.

Prototype

public static String[] getRequiredStringParameters(ServletRequest request, String name)
        throws ServletRequestBindingException 

Source Link

Document

Get an array of String parameters, throwing an exception if not found.

Usage

From source file:org.openmrs.module.sync.web.controller.SettingsController.java

@Override
protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse reponse, Object obj,
        BindException errors) throws Exception {

    log.debug("in processFormSubmission");

    ModelAndView result = new ModelAndView(new RedirectView(getSuccessView()));

    if (!Context.isAuthenticated())
        throw new APIAuthenticationException("Not authenticated!");

    HttpSession httpSession = request.getSession();
    String success = "";
    String error = "";
    MessageSourceAccessor msa = getMessageSourceAccessor();
    String action = ServletRequestUtils.getStringParameter(request, "action", "");
    log.debug("action is " + action);
    if ("saveGeneral".equals(action)) {
        String serverName = ServletRequestUtils.getStringParameter(request, "serverName", "");
        String adminEmail = ServletRequestUtils.getStringParameter(request, "adminEmail", "");
        Context.getService(SyncService.class).saveServerName(serverName);
        Context.getService(SyncService.class).saveAdminEmail(adminEmail);

        String[] startedParams = request.getParameterValues("started");
        boolean started = false;
        if (startedParams != null) {
            for (String startedParam : startedParams) {
                if (startedParam.equals("true"))
                    started = true;//from  ww  w .jav  a 2 s. c  o  m
            }
        }
        Integer repeatInterval = ServletRequestUtils.getIntParameter(request, "repeatInterval", 0) * 60;

        if (started) {
            started = false;
            repeatInterval = null;
            error = msa.getMessage("NzeyiSynchronizationConfig.server.error.disabledSyncSchedule");
        }
        if (started && repeatInterval < 1)
            error = msa.getMessage("SynchronizationConfig.server.error.invalidRepeat");

        if (error.length() == 0) {
            RemoteServer parent = Context.getService(SyncService.class).getParentServer();
            if (parent != null) {
                if (parent.getServerId() != null) {
                    Integer serverId = parent.getServerId();
                    TaskDefinition serverSchedule = null;
                    Collection<TaskDefinition> tasks = Context.getSchedulerService().getRegisteredTasks();
                    if (tasks != null) {
                        for (TaskDefinition task : tasks) {
                            if (task.getTaskClass().equals(SyncConstants.SCHEDULED_TASK_CLASS)) {
                                if (serverId.toString().equals(
                                        task.getProperty(SyncConstants.SCHEDULED_TASK_PROPERTY_SERVER_ID))) {
                                    serverSchedule = task;
                                } else {
                                    log.warn("not equal comparing " + serverId + " to " + task
                                            .getProperty(SyncConstants.SCHEDULED_TASK_PROPERTY_SERVER_ID));
                                }
                            } else {
                                log.warn("not equal comparing " + task.getTaskClass() + " to "
                                        + SyncConstants.SCHEDULED_TASK_CLASS);
                            }
                        }
                    } else {
                        log.warn("tasks is null");
                    }
                    Map<String, String> props = new HashMap<String, String>();
                    props.put(SyncConstants.SCHEDULED_TASK_PROPERTY_SERVER_ID, serverId.toString());
                    if (serverSchedule != null) {
                        if (log.isInfoEnabled())
                            log.info("Sync scheduled task exists, and started is " + started
                                    + " and interval is " + repeatInterval);
                        try {
                            Context.getSchedulerService().shutdownTask(serverSchedule);
                        } catch (Exception e) {
                            log.warn(
                                    "Sync task had run wild, couldn't stop it because it wasn't really running",
                                    e);
                        }
                        serverSchedule.setStarted(started);
                        serverSchedule.setRepeatInterval((long) repeatInterval);
                        serverSchedule.setStartOnStartup(started);
                        serverSchedule.setProperties(props);
                        if (started) {
                            serverSchedule.setStartTime(new Date());
                        }
                        Context.getSchedulerService().saveTask(serverSchedule);
                        if (started) {
                            Context.getSchedulerService().scheduleTask(serverSchedule);
                        }
                    } else {
                        if (log.isInfoEnabled())
                            log.info("Sync scheduled task does not exists, and started is " + started
                                    + " and interval is " + repeatInterval);
                        if (started) {
                            serverSchedule = new TaskDefinition();
                            serverSchedule.setName(parent.getNickname() + " "
                                    + msa.getMessage("SynchronizationConfig.server.scheduler"));
                            serverSchedule.setDescription(
                                    msa.getMessage("SynchronizationConfig.server.scheduler.description"));
                            serverSchedule.setRepeatInterval((long) repeatInterval);
                            serverSchedule.setStartTime(new Date());
                            serverSchedule.setTaskClass(SyncConstants.SCHEDULED_TASK_CLASS);
                            serverSchedule.setStarted(started);
                            serverSchedule.setStartOnStartup(started);
                            serverSchedule.setProperties(props);
                            Context.getSchedulerService().saveTask(serverSchedule);
                            Context.getSchedulerService().scheduleTask(serverSchedule);
                        }
                    }

                }
            }
            success = msa.getMessage("SynchronizationConfig.server.saved");
        }
    } else if ("deleteServer".equals(action)) {
        // check to see if the user is trying to delete a server, react
        // accordingly
        Integer serverId = ServletRequestUtils.getIntParameter(request, "serverId", 0);
        String serverName = "Server " + serverId.toString();

        SyncService ss = Context.getService(SyncService.class);

        if (serverId > 0) {
            RemoteServer deleteServer = ss.getRemoteServer(serverId);
            serverName = deleteServer.getNickname();

            try {
                ss.deleteRemoteServer(deleteServer);
                Object[] args = { serverName };
                success = msa.getMessage("SynchronizationConfig.server.deleted", args);
            } catch (Exception e) {
                Object[] args = { serverName };
                error = msa.getMessage("SynchronizationConfig.server.deleteFailed", args);
            }
        } else {
            error = msa.getMessage("SynchronizationConfig.server.notDeleted");
        }

    } else if ("saveClasses".equals(action)) {
        String[] classIdsTo = ServletRequestUtils.getRequiredStringParameters(request, "toDefault");
        String[] classIdsFrom = ServletRequestUtils.getRequiredStringParameters(request, "fromDefault");
        Set<String> idsTo = new HashSet<String>();
        Set<String> idsFrom = new HashSet<String>();
        if (classIdsTo != null)
            idsTo.addAll(Arrays.asList(classIdsTo));
        if (classIdsFrom != null)
            idsFrom.addAll(Arrays.asList(classIdsFrom));

        List<SyncClass> syncClasses = Context.getService(SyncService.class).getSyncClasses();
        if (syncClasses != null) {
            // log.warn("SYNCCLASSES IS SIZE: " + syncClasses.size());
            for (SyncClass syncClass : syncClasses) {
                if (idsTo.contains(syncClass.getSyncClassId().toString()))
                    syncClass.setDefaultSendTo(true);
                else
                    syncClass.setDefaultSendTo(false);
                if (idsFrom.contains(syncClass.getSyncClassId().toString()))
                    syncClass.setDefaultReceiveFrom(true);
                else
                    syncClass.setDefaultReceiveFrom(false);
                Context.getService(SyncService.class).saveSyncClass(syncClass);
            }
        }

        success = msa.getMessage("SynchronizationConfig.classes.saved");
    }
    if (!success.equals(""))
        httpSession.setAttribute(WebConstants.OPENMRS_MSG_ATTR, success);
    if (!error.equals(""))
        httpSession.setAttribute(WebConstants.OPENMRS_ERROR_ATTR, error);

    return result;
}