com.sfs.whichdoctor.search.http.BulkEmailInputHandler.java Source code

Java tutorial

Introduction

Here is the source code for com.sfs.whichdoctor.search.http.BulkEmailInputHandler.java

Source

/*******************************************************************************
 * Copyright (c) 2009 David Harrison.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the GNU Public License v3.0
 * which accompanies this distribution, and is available at
 * http://www.gnu.org/licenses/gpl-3.0.html
 *
 * Contributors:
 *     David Harrison - initial API and implementation
 ******************************************************************************/
package com.sfs.whichdoctor.search.http;

import com.sfs.DataFilter;
import com.sfs.beans.UserBean;
import com.sfs.whichdoctor.beans.BulkEmailBean;
import com.sfs.whichdoctor.beans.SearchBean;
import com.sfs.whichdoctor.search.sql.BulkEmailSqlHandler;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang.StringUtils;

/**
 * The Class BulkEmailInputHandler.
 *
 * @author David Harrison
 */
public class BulkEmailInputHandler extends InputHandlerBase {

    /** The bulk email sql handler. */
    @Resource
    private BulkEmailSqlHandler bulkEmailSqlHandler;

    /**
     * Process the incoming HttpRequest for search parameters.
     *
     * @param request the request
     * @param user the user
     *
     * @return the search bean
     */
    public final SearchBean process(final HttpServletRequest request, final UserBean user) {

        SearchBean search = bulkEmailSqlHandler.initiate(user);

        BulkEmailBean searchCriteria = (BulkEmailBean) search.getSearchCriteria();
        BulkEmailBean searchConstraints = (BulkEmailBean) search.getSearchConstraints();

        /* Process search form */
        String strName = DataFilter.getHtml(request.getParameter("senderName"));
        String strSubject = DataFilter.getHtml(request.getParameter("subject"));
        String strCreatedA = DataFilter.getHtml(request.getParameter("createdA"));
        String strCreatedB = DataFilter.getHtml(request.getParameter("createdB"));
        String strUpdatedA = DataFilter.getHtml(request.getParameter("updatedA"));
        String strUpdatedB = DataFilter.getHtml(request.getParameter("updatedB"));

        /* Set sender name requirements */
        if (StringUtils.isNotBlank(strName)) {
            searchCriteria.setSenderName(DataFilter.getHtml(strName.trim()));
        }

        /* Set subject requirements */
        if (StringUtils.isNotBlank(strSubject)) {
            searchCriteria.setSubject(DataFilter.getHtml(strSubject.trim()));
        }

        if (StringUtils.isNotEmpty(strCreatedA)) {
            searchCriteria.setCreatedDate(DataFilter.parseDate(strCreatedA, false));
        }
        if (StringUtils.isNotEmpty(strCreatedB)) {
            searchConstraints.setCreatedDate(DataFilter.parseDate(strCreatedB, false));

            if (StringUtils.equals(strCreatedB, "+")) {
                /* All dates above Date A requested */
                searchConstraints.setCreatedDate(getMaximumDate());
            }
            if (StringUtils.equals(strCreatedB, "-")) {
                /* Add dates below Date A requested */
                searchConstraints.setCreatedDate(getMinimumDate());
            }
        }

        if (StringUtils.isNotEmpty(strUpdatedA)) {
            searchCriteria.setCreatedDate(DataFilter.parseDate(strUpdatedA, false));
        }
        if (StringUtils.isNotEmpty(strUpdatedB)) {
            searchConstraints.setCreatedDate(DataFilter.parseDate(strUpdatedB, false));

            if (StringUtils.equals(strUpdatedB, "+")) {
                /* All dates above Date A requested */
                searchConstraints.setCreatedDate(getMaximumDate());
            }
            if (StringUtils.equals(strUpdatedB, "-")) {
                /* Add dates below Date A requested */
                searchConstraints.setCreatedDate(getMinimumDate());
            }
        }

        search.setSearchCriteria(searchCriteria);
        search.setSearchConstraints(searchConstraints);

        return search;
    }

    /**
     * Return a standard search bean.
     *
     * @param user the user
     *
     * @return the search bean
     */
    public final SearchBean process(final UserBean user) {

        SearchBean search = bulkEmailSqlHandler.initiate(user);

        BulkEmailBean searchCriteria = (BulkEmailBean) search.getSearchCriteria();
        BulkEmailBean searchConstraints = (BulkEmailBean) search.getSearchConstraints();

        search.setSearchCriteria(searchCriteria);
        search.setSearchConstraints(searchConstraints);

        return search;
    }
}