⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 genericimporteventprocessor.java

📁 国外的一套开源CRM
💻 JAVA
字号:
/*
 * 
 * Copyright (c) 2004 SourceTap - www.sourcetap.com
 *
 *  The contents of this file are subject to the SourceTap Public License 
 * ("License"); You may not use this file except in compliance with the 
 * License. You may obtain a copy of the License at http://www.sourcetap.com/license.htm
 * 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 above copyright notice and this permission notice shall be included
 * in all copies or substantial portions of the Software.
 *
 */

package com.sourcetap.sfa.event;

import java.util.Iterator;
import java.util.List;
import java.util.Vector;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.ofbiz.base.util.Debug;
import org.ofbiz.entity.GenericDelegator;
import org.ofbiz.entity.GenericEntityException;
import org.ofbiz.entity.GenericValue;

import com.sourcetap.sfa.ui.UICache;
import com.sourcetap.sfa.ui.UIScreenSection;
import com.sourcetap.sfa.ui.UIWebScreenSection;
import com.sourcetap.sfa.util.UserInfo;


/**
 * DOCUMENT ME!
 *
 */
public class GenericImportEventProcessor {
    public static final int STATUS_ERROR = -1;
    public static final int STATUS_CANCEL = 0;
    public static final int STATUS_CONTINUE = 1;
    private static final boolean TIMER = false;
	public static final String module = GenericImportEventProcessor.class.getName();


    public GenericImportEventProcessor() {
    }

    //-------------------------------------------------------------------------
    // INSERT - Inserts a new set of entities into the data base.
    //-------------------------------------------------------------------------
    public int processInsert(UserInfo userInfo,
        UIWebScreenSection uiWebScreenSection, HttpServletRequest request,
        HttpServletResponse response, GenericDelegator delegator,
        GenericEventProcessor eventProcessor, DataMatrix dataMatrix,
        Vector dataValues, Vector importFields, UICache uiCache)
        throws GenericEntityException {

        int status = STATUS_CONTINUE;
        
        //TODO TO DO validateData( uiWebScreenSection, dataValues, importFields, )

        status = eventProcessor.processCreate(userInfo, uiWebScreenSection.getEntityNameList(), delegator, dataMatrix);

        if (status != STATUS_CONTINUE) {
            return status;
        }

        // Pre fill the data matrix from the info entered on the screen.
        dataMatrix.addRowFromArray(0, dataValues, importFields,
            uiWebScreenSection);

        // Trigger the pre-insert event.
        status = this.preInsert(userInfo, uiWebScreenSection, request,
                response, delegator, eventProcessor, dataMatrix, uiCache);

        if (status != STATUS_CONTINUE) {
            return status;
        }

        // Trigger the insert event.
        status = this.insert(userInfo, uiWebScreenSection, request, response,
                delegator, eventProcessor, dataMatrix, uiCache);

        if (status != STATUS_CONTINUE) {
            return status;
        }

        // Trigger the post-insert event.
        status = this.postInsert(userInfo, uiWebScreenSection, request,
                response, delegator, eventProcessor, dataMatrix, uiCache);

        return status;
    }

    /**
     * DOCUMENT ME!
     *
     * @param userInfo 
     * @param uiWebScreenSection 
     * @param request 
     * @param response 
     * @param delegator 
     * @param eventProcessor 
     * @param dataMatrix 
     * @param uiCache 
     *
     * @return 
     */
    protected int preInsert(UserInfo userInfo,
        UIWebScreenSection uiWebScreenSection, HttpServletRequest request,
        HttpServletResponse response, GenericDelegator delegator,
        GenericEventProcessor eventProcessor, DataMatrix dataMatrix,
        UICache uiCache) {

        return STATUS_CONTINUE;
    }

    /**
     * DOCUMENT ME!
     *
     * @param userInfo 
     * @param uiWebScreenSection 
     * @param request 
     * @param response 
     * @param delegator 
     * @param eventProcessor 
     * @param dataMatrix 
     * @param uiCache 
     *
     * @return 
     *
     * @throws GenericEntityException 
     */
    protected int insert(UserInfo userInfo,
        UIWebScreenSection uiWebScreenSection, HttpServletRequest request,
        HttpServletResponse response, GenericDelegator delegator,
        GenericEventProcessor eventProcessor, DataMatrix dataMatrix,
        UICache uiCache) throws GenericEntityException {

        int status = eventProcessor.processInsert(userInfo, delegator,
                dataMatrix);

        Debug.logVerbose("Data matrix after insert: " +
                dataMatrix.getCurrentBuffer().getContents().toString(), module);

        return status;
    }

    /**
     * DOCUMENT ME!
     *
     * @param userInfo 
     * @param uiWebScreenSection 
     * @param request 
     * @param response 
     * @param delegator 
     * @param eventProcessor 
     * @param dataMatrix 
     * @param uiCache 
     *
     * @return 
     */
    protected int postInsert(UserInfo userInfo,
        UIWebScreenSection uiWebScreenSection, HttpServletRequest request,
        HttpServletResponse response, GenericDelegator delegator,
        GenericEventProcessor eventProcessor, DataMatrix dataMatrix,
        UICache uiCache) {

        return STATUS_CONTINUE;
    }

    //-------------------------------------------------------------------------
    // CREATE - Creates a blank set of entities to prepare for an INSERT.
    //-------------------------------------------------------------------------
    protected int processCreate(UserInfo userInfo,
        UIWebScreenSection uiWebScreenSection, HttpServletRequest request,
        HttpServletResponse response, GenericDelegator delegator,
        GenericEventProcessor eventProcessor, DataMatrix dataMatrix)
        throws GenericEntityException {

        int status = STATUS_CONTINUE;

        // Create a List of entity names from which the empty entities will be created.
        //		if (DEBUG) Debug.logVerbose("[create] About to create an empty generic value vector List.");
        List entityNameList = uiWebScreenSection.getEntityNameList();

        // Trigger the pre-create event.
        status = this.preCreate(userInfo, uiWebScreenSection, request,
                response, delegator, eventProcessor, dataMatrix, entityNameList);

        if (status != STATUS_CONTINUE) {
            return status;
        }

        // Trigger the create event.
        status = this.create(userInfo, uiWebScreenSection, request, response,
                delegator, eventProcessor, dataMatrix, entityNameList);

        if (status != STATUS_CONTINUE) {
            return status;
        }

        // Trigger the post-create event.
        status = this.postCreate(userInfo, uiWebScreenSection, request,
                response, delegator, eventProcessor, dataMatrix, entityNameList);

        return status;
    }

    /**
     * DOCUMENT ME!
     *
     * @param userInfo 
     * @param uiWebScreenSection 
     * @param request 
     * @param response 
     * @param delegator 
     * @param eventProcessor 
     * @param dataMatrix 
     * @param entityNameList 
     *
     * @return 
     */
    protected int preCreate(UserInfo userInfo,
        UIWebScreenSection uiWebScreenSection, HttpServletRequest request,
        HttpServletResponse response, GenericDelegator delegator,
        GenericEventProcessor eventProcessor, DataMatrix dataMatrix,
        List entityNameList) {

        return STATUS_CONTINUE;
    }

    /**
     * DOCUMENT ME!
     *
     * @param userInfo 
     * @param uiWebScreenSection 
     * @param request 
     * @param response 
     * @param delegator 
     * @param eventProcessor 
     * @param dataMatrix 
     * @param entityNameList 
     *
     * @return 
     *
     * @throws GenericEntityException 
     */
    protected int create(UserInfo userInfo,
        UIWebScreenSection uiWebScreenSection, HttpServletRequest request,
        HttpServletResponse response, GenericDelegator delegator,
        GenericEventProcessor eventProcessor, DataMatrix dataMatrix,
        List entityNameList) throws GenericEntityException {

        int status = eventProcessor.processCreate(userInfo, entityNameList,
                delegator, dataMatrix);

        // For each attribute in the data matrix, look for HTML parameters in the
        // request object to set default values.
        Vector genericValueVector = dataMatrix.getCurrentBuffer()
                                              .getContentsRow(0);

        for (int entityNbr = 0; entityNbr < genericValueVector.size();
                entityNbr++) {
            GenericValue gV = (GenericValue) genericValueVector.get(entityNbr);
            String entityName = gV.getEntityName();

            //			List fieldNames = gV.getModelEntity().getNoPkFieldNames();
            List fieldNames = gV.getModelEntity().getAllFieldNames();
            Iterator fieldNameI = fieldNames.iterator();

            while (fieldNameI.hasNext()) {
                String fieldName = (String) fieldNameI.next();

                if (request.getParameter(fieldName) != null) {
                    // A parameter was passed in to set this value. Store it in the data matrix.
                    String defaultValue = request.getParameter(fieldName);
                    EventUtility.storeValue(gV, fieldName, defaultValue,
                        delegator);
                } else {
                    // Check for a parameter with the entity name as a prefix.
                    String parameterName = entityName + "_" + fieldName;

                    if (request.getParameter(parameterName) != null) {
                        // A parameter was passed in to set this value. Store it in the data matrix.
                        String defaultValue = request.getParameter(parameterName);
                        EventUtility.storeValue(gV, fieldName, defaultValue,
                            delegator);
                    }
                }
            }
        }

        return status;
    }

    /**
     * DOCUMENT ME!
     *
     * @param userInfo 
     * @param uiWebScreenSection 
     * @param request 
     * @param response 
     * @param delegator 
     * @param eventProcessor 
     * @param dataMatrix 
     * @param entityNameList 
     *
     * @return 
     */
    protected int postCreate(UserInfo userInfo,
        UIWebScreenSection uiWebScreenSection, HttpServletRequest request,
        HttpServletResponse response, GenericDelegator delegator,
        GenericEventProcessor eventProcessor, DataMatrix dataMatrix,
        List entityNameList) {

        return STATUS_CONTINUE;
    }

    /**
     * DOCUMENT ME!
     *
     * @param userInfo 
     * @param screenName 
     * @param sectionName 
     * @param delegator 
     * @param uiCache 
     *
     * @return 
     *
     * @throws GenericEntityException 
     */
    public UIWebScreenSection getUiWebScreenSection(UserInfo userInfo,
        String screenName, String sectionName, GenericDelegator delegator,
        UICache uiCache) throws GenericEntityException {
        	
       	return UIWebScreenSection.getUiWebScreenSection(userInfo, screenName, sectionName, delegator, uiCache);
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -