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

📄 genericeventprocessor.java

📁 国外的一套开源CRM
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
                relationTitle, relatedEntityName);

        if (relatedGVL == null) {
            return STATUS_CONTINUE;
        }

        Iterator relatedGVI = relatedGVL.iterator();

        while (relatedGVI.hasNext()) {
            GenericValue relatedGV = (GenericValue) relatedGVI.next();
            int status = relatedEventProcessor.delete(userInfo, delegator,
                    entityGV.getEntityName(), relatedGV);

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

        return STATUS_CONTINUE;
    }

    /**
     * DOCUMENT ME!
     *
     * @param userInfo 
     * @param delegator 
     * @param entityGV 
     * @param relationTitle 
     * @param relatedEntityName 
     *
     * @return 
     */
    public List findOneRelated(UserInfo userInfo, GenericDelegator delegator,
        GenericValue entityGV, String relationTitle, String relatedEntityName) {
        // Find instances of a particular entity related to the current entity.  This will normally be called by
        // the deleteAllRelated method of a descendant of this class.

        GenericPK entityPK = null;

        //		String entityName = entityGV.getEntityName();
        String entityKeyString = entityGV.getPrimaryKey().toString();

        List relatedGVL = null;

        try {
            Debug.logVerbose("Retrieving all " + relatedEntityName +
                    " records related to " + entityKeyString, module);

            relatedGVL = delegator.getRelated(relationTitle +
                    relatedEntityName, entityGV);
        } catch (GenericEntityException e) {
            Debug.logError("Error getting the related " + relatedEntityName +
                " records: " + e.getLocalizedMessage(), module);

            return relatedGVL;
        }

        return relatedGVL;
    }

    //-------------------------------------------------------------------------
    // UPDATE - Updates a set of entities in the data base.
    //-------------------------------------------------------------------------
    public int processUpdate(UserInfo userInfo, GenericDelegator delegator,
        DataMatrix dataMatrix) throws GenericEntityException {

        UtilTimer timer = new UtilTimer();

        if (TIMER) {
            timer.timerString(2, "[GenericEventProcessor.processUpdate] Start");
        }

        int status = STATUS_CONTINUE;

        // Trigger the pre-update event.
        status = this.preUpdate(userInfo, delegator, dataMatrix);

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

        if (TIMER) {
            timer.timerString(2,
                "[GenericEventProcessor.processUpdate] Preupdate finished");
        }

        // Trigger the update event.
        status = this.update(userInfo, delegator, dataMatrix);

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

        if (TIMER) {
            timer.timerString(2,
                "[GenericEventProcessor.processUpdate] Update finished");
        }

        // Trigger the post-update event.
        status = this.postUpdate(userInfo, delegator, dataMatrix);

        if (TIMER) {
            timer.timerString(2,
                "[GenericEventProcessor.processUpdate] Postupdate finished");
        }

        if (TIMER) {
            timer.timerString(2, "[GenericEventProcessor.processUpdate] End");
        }

        return status;
    }

    /**
     * DOCUMENT ME!
     *
     * @param userInfo 
     * @param delegator 
     * @param dataMatrix 
     *
     * @return 
     */
    protected int preUpdate(UserInfo userInfo, GenericDelegator delegator,
        DataMatrix dataMatrix) {

        return STATUS_CONTINUE;
    }

    /**
     * DOCUMENT ME!
     *
     * @param userInfo 
     * @param delegator 
     * @param dataMatrix 
     *
     * @return 
     *
     * @throws GenericEntityException 
     */
    public int update(UserInfo userInfo, GenericDelegator delegator,
        DataMatrix dataMatrix) throws GenericEntityException {

        UtilTimer timer = new UtilTimer();

        if (TIMER) {
            timer.timerString(2, "[GenericEventProcessor.update] Start");
        }

        for (int row = 0; row < dataMatrix.getOriginalBuffer().getRowCount();
                row++) {
            if (TIMER) {
                timer.timerString(2, "[GenericEventProcessor.update] Saving row");
            }

            boolean rowChanged = dataMatrix.getRowChanged(row);

            if (rowChanged) {
                Vector currentRow = dataMatrix.getCurrentBuffer()
                                              .getContentsRow(row);
                Vector originalRow = dataMatrix.getOriginalBuffer()
                                               .getContentsRow(row);

                if (currentRow.size() > 0) {
                    // Create a List of generic values to be stored.
                    List storeGVL = new LinkedList();

                    // Check for updateable entities.
                    for (int entityNumber = 0;
                            entityNumber < currentRow.size(); entityNumber++) {
                        if (dataMatrix.getIsUpdateable(entityNumber)) {
                            // This entity is updateable.  Append it to the List to be stored.
                            storeGVL.add((GenericValue) currentRow.get(
                                    entityNumber));
                        }
                    }

                    Debug.logVerbose("About to update row " +
                            String.valueOf(row), module);

                    Debug.logVerbose("Generic value(s) to update: " +
                            storeGVL.toString(), module);

                    try {
                        delegator.storeAll(storeGVL);
                    } catch (GenericEntityException e2) {
                        Debug.logError("Error updating: " +
                            e2.getLocalizedMessage(), module);
                    }

                } else {
                    return STATUS_CANCEL;
                }
            }
        }

        return STATUS_CONTINUE;
    }

    /**
     * DOCUMENT ME!
     *
     * @param userInfo 
     * @param delegator 
     * @param dataMatrix 
     *
     * @return 
     */
    protected int postUpdate(UserInfo userInfo, GenericDelegator delegator,
        DataMatrix dataMatrix) {

        return STATUS_CONTINUE;
    }

    //-------------------------------------------------------------------------
    // UPDATE_SELECT - Adds and/or deletes records in a many-to-many relationship table.
    //-------------------------------------------------------------------------
    public int processUpdateSelect(UserInfo userInfo,
        GenericDelegator delegator, ModelEntity primaryModelEntity,
        ArrayList removeKeyMapList, ArrayList createKeyMapList)
        throws GenericEntityException {

        // Trigger the pre-update-select event.
        int status = this.preUpdateSelect(userInfo, delegator,
                primaryModelEntity, removeKeyMapList, createKeyMapList);

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

        // Trigger the update-select event.
        status = this.updateSelect(userInfo, delegator, primaryModelEntity,
                removeKeyMapList, createKeyMapList);

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

        // Trigger the post-update-select event.
        status = this.postUpdateSelect(userInfo, delegator, primaryModelEntity,
                removeKeyMapList, createKeyMapList);

        return status;
    }

    /**
     * DOCUMENT ME!
     *
     * @param userInfo 
     * @param delegator 
     * @param primaryModelEntity 
     * @param removeKeyMapList 
     * @param createKeyMapList 
     *
     * @return 
     */
    protected int preUpdateSelect(UserInfo userInfo,
        GenericDelegator delegator, ModelEntity primaryModelEntity,
        ArrayList removeKeyMapList, ArrayList createKeyMapList) {

        return STATUS_CONTINUE;
    }

    /**
     * DOCUMENT ME!
     *
     * @param userInfo 
     * @param delegator 
     * @param primaryModelEntity 
     * @param removeKeyMapList 
     * @param createKeyMapList 
     *
     * @return 
     *
     * @throws GenericEntityException 
     */
    public int updateSelect(UserInfo userInfo, GenericDelegator delegator,
        ModelEntity primaryModelEntity, ArrayList removeKeyMapList,
        ArrayList createKeyMapList) throws GenericEntityException {

        Debug.logVerbose("removeKeyMapList: " + removeKeyMapList, module);
        Debug.logVerbose("createKeyMapList: " + createKeyMapList, module);

        // Remove de-selected items from the data base.
        Iterator removeKeyMapListI = removeKeyMapList.iterator();

        while (removeKeyMapListI.hasNext()) {
            // User un-selected this item.  Need to remove it from the many-to-many table.
            HashMap removeMap = (HashMap) removeKeyMapListI.next();
            deleteOneSelect(primaryModelEntity, removeMap, userInfo, delegator);
        }

        // Add newly selected items to the data base.
        Iterator createKeyMapListI = createKeyMapList.iterator();

        while (createKeyMapListI.hasNext()) {
            // User selected this item.  Need to add it to the many-to-many table.
            HashMap createMap = (HashMap) createKeyMapListI.next();
            insertOneSelect(primaryModelEntity, createMap, userInfo, delegator);
        }

        return STATUS_CONTINUE;
    }

    /**
     * DOCUMENT ME!
     *
     * @param userInfo 
     * @param delegator 
     * @param primaryModelEntity 
     * @param removeKeyMapList 
     * @param createKeyMapList 
     *
     * @return 
     */
    protected int postUpdateSelect(UserInfo userInfo,
        GenericDelegator delegator, ModelEntity primaryModelEntity,
        ArrayList removeKeyMapList, ArrayList createKeyMapList) {

        return STATUS_CONTINUE;
    }

    /**
     * DOCUMENT ME!
     *
     * @param primaryModelEntity 
     * @param removeMap 
     * @param userInfo 
     * @param delegator 
     *
     * @return 
     */
    protected int deleteOneSelect(ModelEntity primaryModelEntity,
        HashMap removeMap, UserInfo userInfo, GenericDelegator delegator) {

        try {
            GenericPK removePK = new GenericPK(primaryModelEntity, removeMap);

            try {
                delegator.removeByPrimaryKey(removePK);
            } catch (Exception e2) {
                Debug.logError("Error removing entity using primary key map " +
                    removeMap + ": " + e2.getLocalizedMessage(), module);

                return STATUS_ERROR;
            }
        } catch (Exception e1) {
            Debug.logError("Cannot create a primary key for entity " +
                primaryModelEntity.getEntityName() + " from map " + removeMap +
                ": " + e1.getLocalizedMessage(), module);

            return STATUS_ERROR;
        }

        return STATUS_CONTINUE;
    }

    /**
     * DOCUMENT ME!
     *
     * @param primaryModelEntity 
     * @param createMap 
     * @param userInfo 
     * @param delegator 
     *
     * @return 
     */
    protected int insertOneSelect(ModelEntity primaryModelEntity,
        HashMap createMap, UserInfo userInfo, GenericDelegator delegator) {

        try {
            Debug.logVerbose("Creating generic value from " + "create map " +
                    createMap.toString(), module);

            GenericValue createGV = new GenericValue(primaryModelEntity,
                    createMap);
            createGV.setDelegator(delegator);

            try {
                Debug.logVerbose("Inserting record " + "using generic value " +
                        createGV.toString(), module);

                delegator.create(createGV);
            } catch (Exception e2) {
                Debug.logError("Error inserting a new " +
                    primaryModelEntity.getEntityName() +
                    " from generic value " + createGV, module);
                Debug.logError(e2.getLocalizedMessage(), module);

                return STATUS_ERROR;
            }
        } catch (Exception e1) {
            Debug.logError("Cannot create a generic value for entity " +
                primaryModelEntity.getEntityName() + " from map " + createMap, module);
            Debug.logError(e1.getLocalizedMessage(), module);

            return STATUS_ERROR;
        }

        return STATUS_CONTINUE;
    }

    //-------------------------------------------------------------------------
    // utility function to handle linkage between EntityAccess and the entity that is being retrieved/stored
    // the default is null, meaning that the entity is unrestricted
    // this should be overridden for any entity that needs controlled access
    //-------------------------------------------------------------------------
    public SecurityLinkInfo getSecurityLinkInfo(UserInfo userInfo,
        GenericDelegator delegator) {

        return null;
    }

    //-------------------------------------------------------------------------
    // CUSTOM - Performs one or more custom events.
    //-------------------------------------------------------------------------
    public int processCustom(UserInfo userInfo, GenericDelegator delegator,
        DataMatrix dataMatrix, String action) throws GenericEntityException {

        return STATUS_CONTINUE;
    }

    /**
     * Add entity clauses for one related entity.  This will join related tables to the query
     * during a retrieve so query values can be entered that are in related entities.
     *
     * @author  <a href='mailto:jnutting@sourcetap.com'>John Nutting</a>
     *
     * @param delegator Reference to the OFBIZ delegator being used to connect to the data base
     * @param relationTitle Relation title
     * @param relatedEntityName Name of related entity
     * @param primaryEntityName Name of the primary entity
     * @param primaryME ModelEntity object for the primary entity
     * @param queryInfo  criteria to be used in search
     */
    public void addOneRelationClause(GenericDelegator delegator,
        String relationTitle, String relatedAndFields, String relatedEntityName,
        String primaryEntityName, ModelEntity primaryME, boolean isOuterJoin, QueryInfo queryInfo)
        throws GenericEntityException 
    {
		EventUtility.addOneRelationClause(delegator, relationTitle, relatedAndFields, relatedEntityName, primaryEntityName, primaryME, isOuterJoin, queryInfo);
    }

}

⌨️ 快捷键说明

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