📄 genericimporteventprocessor.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 + -