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

📄 fieldtofield.java

📁 Sequoia ERP是一个真正的企业级开源ERP解决方案。它提供的模块包括:电子商务应用(e-commerce), POS系统(point of sales),知识管理,存货与仓库管理
💻 JAVA
字号:
/* * $Id: FieldToField.java 5824 2005-09-25 23:18:16Z jonesde $ * *  Copyright (c) 2001, 2002 The Open For Business Project - www.ofbiz.org * *  Permission is hereby granted, free of charge, to any person obtaining a *  copy of this software and associated documentation files (the "Software"), *  to deal in the Software without restriction, including without limitation *  the rights to use, copy, modify, merge, publish, distribute, sublicense, *  and/or sell copies of the Software, and to permit persons to whom the *  Software is furnished to do so, subject to the following conditions: * *  The above copyright notice and this permission notice shall be included *  in all copies or substantial portions of the Software. * *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY *  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT *  OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *  THE USE OR OTHER DEALINGS IN THE SOFTWARE. */package org.ofbiz.minilang.method.envops;import java.util.*;import org.w3c.dom.*;import org.ofbiz.base.util.*;import org.ofbiz.minilang.*;import org.ofbiz.minilang.method.*;import org.ofbiz.entity.*;import org.ofbiz.entity.model.*;/** * Copies a map field to a map field * * @author     <a href="mailto:jonesde@ofbiz.org">David E. Jones</a> * @version    $Rev: 5824 $ * @since      2.0 */public class FieldToField extends MethodOperation {        public static final String module = FieldToField.class.getName();        ContextAccessor mapAcsr;    ContextAccessor fieldAcsr;    ContextAccessor toMapAcsr;    ContextAccessor toFieldAcsr;    public FieldToField(Element element, SimpleMethod simpleMethod) {        super(element, simpleMethod);        mapAcsr = new ContextAccessor(element.getAttribute("map-name"));        fieldAcsr = new ContextAccessor(element.getAttribute("field-name"));        toMapAcsr = new ContextAccessor(element.getAttribute("to-map-name"));        toFieldAcsr = new ContextAccessor(element.getAttribute("to-field-name"));        // set toMapAcsr and toFieldAcsr to their defualt values of mapAcsr and fieldAcsr if empty        if (toMapAcsr.isEmpty()) {            toMapAcsr = mapAcsr;        }        if (toFieldAcsr.isEmpty()) {            toFieldAcsr = fieldAcsr;        }    }    public boolean exec(MethodContext methodContext) {        Object fieldVal = null;        if (!mapAcsr.isEmpty()) {            Map fromMap = (Map) mapAcsr.get(methodContext);            if (fromMap == null) {                if (Debug.infoOn()) Debug.logInfo("Map not found with name " + mapAcsr + ", not copying from this map", module);                return true;            }            fieldVal = fieldAcsr.get(fromMap, methodContext);        } else {            // no map name, try the env            fieldVal = fieldAcsr.get(methodContext);        }        if (fieldVal == null) {            if (Debug.verboseOn()) Debug.logVerbose("Field value not found with name " + fieldAcsr + " in Map with name " + mapAcsr + ", not copying field", module);            return true;        }        // note that going to an env field will only work if it came from an env         // field because if not specified the to-map-name will be set to the map-name        // to go from a map field to an env field, use the field-to-env operation        Map toMap = null;        if (!toMapAcsr.isEmpty()) {            toMap = (Map) toMapAcsr.get(methodContext);            if (toMap == null) {                if (Debug.verboseOn()) Debug.logVerbose("Map not found with name " + toMapAcsr + ", creating new map", module);                toMap = new HashMap();                toMapAcsr.put(methodContext, toMap);            }            // if our map is a GenericValue, convert the input data to the correct type of the GenericValue fields (See OFBIZ-500)            if (toMap instanceof GenericValue) {                GenericValue tmpVal = (GenericValue) toMap;                ModelField modelField = tmpVal.getModelEntity().getField(toFieldAcsr.toString());                if (modelField != null) {                    try {                        // we need the ModelFieldType because it stores the Java lang type of the field (seems to be only way to do this)                        ModelFieldType type = tmpVal.getDelegator().getEntityFieldType(tmpVal.getModelEntity(), modelField.getType());                        if ((type != null) && !(fieldVal.getClass().getName().equals(type.getJavaType()))) {                            // convert with null format and locale for now (should add as attributes of field-to-field)                            // the last argument tells simpleTypeConvert not to throw a GeneralException when the conversion fails (fieldVal will be unchanged)                            fieldVal = ObjectType.simpleTypeConvert(fieldVal, type.getJavaType(), null, null, false);                        }                    } catch (GenericEntityException e) {                        Debug.logError(e, "Failed to convert " + fieldVal.getClass().getName() + " of from-field input into "                                 + modelField.getType() + " needed by " + tmpVal.getEntityName() + "." + modelField.getName(), module);                    } catch (GeneralException e) {                        // this should not happen if we pass false to simpleTypeConvert, log anyway                        Debug.logError(e, "field-to-field conversion error: " + e.getMessage(), module);                    }                }             }            toFieldAcsr.put(toMap, fieldVal, methodContext);        } else {            // no to-map, so put in env            toFieldAcsr.put(methodContext, fieldVal);        }        return true;    }    public String rawString() {        return "<field-to-field field-name=\"" + this.fieldAcsr + "\" map-name=\"" + this.mapAcsr + "\" to-field-name=\"" + this.toFieldAcsr + "\" to-map-name=\"" + this.toMapAcsr + "\"/>";    }    public String expandedString(MethodContext methodContext) {        // TODO: something more than a stub/dummy        return this.rawString();    }}

⌨️ 快捷键说明

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