us.mn.state.health.lims.common.provider.query.EntityNamesProvider.java Source code

Java tutorial

Introduction

Here is the source code for us.mn.state.health.lims.common.provider.query.EntityNamesProvider.java

Source

/*
 * The contents of this file are subject to the Mozilla Public License
 * Version 1.1 (the "License"); you may not use this file except in
 * compliance with the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS"
 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
 * License for the specific language governing rights and limitations under
 * the License.
 *
 * The Original Code is OpenELIS code.
 *
 * Copyright (C) ITECH, University of Washington, Seattle WA.  All Rights Reserved.
 */
package us.mn.state.health.lims.common.provider.query;

import org.apache.commons.validator.GenericValidator;
import org.json.simple.JSONObject;
import us.mn.state.health.lims.common.servlet.validation.AjaxServlet;
import us.mn.state.health.lims.localization.valueholder.Localization;
import us.mn.state.health.lims.panel.daoimpl.PanelDAOImpl;
import us.mn.state.health.lims.panel.valueholder.Panel;
import us.mn.state.health.lims.typeofsample.daoimpl.TypeOfSampleDAOImpl;
import us.mn.state.health.lims.typeofsample.valueholder.TypeOfSample;
import us.mn.state.health.lims.renametestsection.daoimpl.RenameTestSectionDAOImpl;
import us.mn.state.health.lims.renametestsection.valueholder.RenameTestSection;
import us.mn.state.health.lims.unitofmeasure.daoimpl.UnitOfMeasureDAOImpl;
import us.mn.state.health.lims.unitofmeasure.valueholder.UnitOfMeasure;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.StringWriter;

public class EntityNamesProvider extends BaseQueryProvider {
    public static final String PANEL = "panel";
    public static final String SAMPLE_TYPE = "sampleType";
    public static final String TEST_SECTION = "testSection";
    public static final String UNIT_OF_MEASURE = "unitOfMeasure";
    protected AjaxServlet ajaxServlet = null;

    @Override
    public void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        String id = request.getParameter("entityId");
        String entityName = request.getParameter("entityName");

        String jResult;
        JSONObject jsonResult = new JSONObject();
        String jString;

        if (GenericValidator.isBlankOrNull(id) || GenericValidator.isBlankOrNull(entityName)) {
            jResult = INVALID;
            jString = "Internal error, please contact Admin and file bug report";
        } else {
            jResult = createJsonTestNames(id, entityName, jsonResult);
            StringWriter out = new StringWriter();
            try {
                jsonResult.writeJSONString(out);
                jString = out.toString();
            } catch (IOException e) {
                e.printStackTrace();
                jResult = INVALID;
                jString = "Internal error, please contact Admin and file bug report";
            } catch (IllegalStateException e) {
                e.printStackTrace();
                jResult = INVALID;
                jString = "Internal error, please contact Admin and file bug report";
            }
        }
        ajaxServlet.sendData(jString, jResult, request, response);

    }

    @SuppressWarnings("unchecked")
    private String createJsonTestNames(String id, String entityName, JSONObject jsonResult)
            throws IllegalStateException {

        Localization localization = null;

        if (PANEL.equals(entityName)) {
            localization = getLocalizationForPanel(id);
        } else if (SAMPLE_TYPE.equals(entityName)) {
            localization = getLocalizationForSampleType(id);
        } else if (TEST_SECTION.equals(entityName)) {
            localization = getLocalizationForRenameTestSection(id);
        } else if (UNIT_OF_MEASURE.equals(entityName)) {
            localization = getLocalizationForUnitOfMeasure(id);
        } //add entity types as needed

        if (localization != null) {

            JSONObject nameObject = new JSONObject();
            nameObject.put("english", localization.getEnglish());
            nameObject.put("french", localization.getFrench());
            jsonResult.put("name", nameObject);

            return VALID;
        }

        return INVALID;
    }

    private Localization getLocalizationForPanel(String id) {
        Panel panel = new PanelDAOImpl().getPanelById(id);
        return panel != null ? panel.getLocalization() : null;
    }

    private Localization getLocalizationForSampleType(String id) {
        TypeOfSample typeOfSample = new TypeOfSampleDAOImpl().getTypeOfSampleById(id);
        return typeOfSample != null ? typeOfSample.getLocalization() : null;
    }

    private Localization getLocalizationForRenameTestSection(String id) {
        RenameTestSection testSection = new RenameTestSectionDAOImpl().getTestSectionById(id);
        return testSection != null ? testSection.getLocalization() : null;
    }

    private Localization getLocalizationForUnitOfMeasure(String id) {
        UnitOfMeasure unitOfMeasure = new UnitOfMeasureDAOImpl().getUnitOfMeasureById(id);
        return unitOfMeasure != null ? unitOfMeasure.getLocalization() : null;
    }

    @Override
    public void setServlet(AjaxServlet as) {
        this.ajaxServlet = as;
    }

    @Override
    public AjaxServlet getServlet() {
        return this.ajaxServlet;
    }

}