formbean.java

来自「Java Pattern Oriented Framework (Jt) 是为了」· Java 代码 · 共 2,094 行 · 第 1/5 页

JAVA
2,094
字号
        
        if (jdomAdapter == null)
            return (null);
        
        msg.setMsgContent("struts-config/message-resources");
        
        elem = (Element) factory.sendMessage(jdomAdapter, msg);
        
        if (elem == null) {
            handleWarning 
            ("FormBean.retrieveResourcePath: element not found: struts-config/message-resources");
            return (null);
        }
        
        parameter = elem.getAttributeValue("parameter");
        
        if (parameter == null)
            return (null);
        
        if (config == null)
            return null;
        
        path = concatenatePath (config.getWebAppPath(), "WEB-INF/classes");
        
        fileName = convertClassToPath (parameter);
        
        if (fileName == null)
            return null;
        
        fileName = fileName + ".properties";
        
        path = concatenatePath (path, fileName);
                
        handleTrace ("FormBean.retrieveResourcePath: " + path, 0);
        
        return (path);
        
    }
 
    // Retrieve plug-in element
    
    private Element retrieveValidatorPlugin () {
        JtMessage msg = new JtMessage (JDOMAdapter.FIND_ELEMENTS);
        List elements;
        Iterator iterator;
        Element elem;
        String className;
        
        
        msg.setMsgContent("plug-in");
        elements = (List) factory.sendMessage(jdomAdapter, msg);
        
        if (elements == null)
            return (null);
        
        iterator = elements.iterator();
        
        while (iterator.hasNext()) {
            elem = (Element) iterator.next();
            className = elem.getAttributeValue("className");
            
            if ("org.apache.struts.validator.ValidatorPlugIn".equals(className)) 
                return (elem);
                
        }    
        
        return (null);
        
    }
    
    private String retrieveValidatorConfPath () {
        Element elem, tmp;
        List children;
        Iterator iterator;
        String value;
        String pathArray[];
        int i;
        
        elem = retrieveValidatorPlugin ();
        
        if (elem == null) {
            handleWarning ("retrieveValidatorConfPath: validator plug-in not found");
            return null;
        }
        children = elem.getChildren();
        
        if (children == null)
            return null;
        
        iterator = children.iterator();
        
        while (iterator.hasNext()) {
            
            tmp = (Element) iterator.next();
            if (!"set-property".equals(tmp.getName()))
                    continue;
            value = tmp.getAttributeValue("property");
            
            if (value == null || !value.equals ("pathnames"))
                continue;
            value = tmp.getAttributeValue("value");
            
            if (value == null)
                return null;
            pathArray = value.split(",");
            
            for (i=0; i < pathArray.length; i++) {
                if (pathArray[i].endsWith("validation.xml")) {
                    return (pathArray[i].trim());
                }
            }               
            
        }
        
        return null;
    }
    
    private boolean createValidatorForm (ValidatorlConfigFile configFile, FormBeanForm form) {
        JtFactory factory = new JtFactory ();      
        JtMessage msg = new JtMessage (JtObject.JtCREATE);
        Element elem;
        
        if (form == null || configFile == null)
            return false;
        
        
        elem = formToValidatorElement (form, JtObject.JtCREATE);
        //handleTrace ("form:" + form); //check
        //handleTrace ("elem:" + elem);
        //if (form != null)
        //    handleTrace ("form(name):" + form.getName());
        
        
        if (elem == null) // check
            return false;
        
        msg.setMsgData("form-validation/formset");
        msg.setMsgContent(elem);
        factory.sendMessage(configFile, msg);
        
        if (configFile.getObjException() != null)
            return false;
        else
            return true;
        
    }
    
    private boolean updateValidatorForm (ValidatorlConfigFile configFile, FormBeanForm form,
            String operation) {
        JtFactory factory = new JtFactory ();      
        JtMessage msg = new JtMessage (ValidatorlConfigFile.JtREAD);
        JtMessage msg1 = new JtMessage (ValidatorlConfigFile.JtUPDATE);
        Element elem;

        if (form == null || configFile == null)
            return false;

        handleTrace ("updateValidatorForm (name):" + form.getName(), 0);

        msg.setMsgContent(form.getName());
        elem = (Element) factory.sendMessage(configFile, msg);

        if (elem == null) {
            handleWarning ("updateValidatorForm: form not found: " + 
                    form.getName());
            return createValidatorForm (configFile, form);
            //return false;
        }    

        if (!updateValidatorElement (form, elem, operation))
            return false;

        msg1.setMsgContent(elem);
        factory.sendMessage(configFile, msg1);
        
        
        if (configFile.getObjException() != null)
            return false;
        else
            return true;
        

    }
    
    
    private void loadVar (Element element, DynaMapping mapping) {
        List children;
        Iterator iterator;
        Element subElem;
        String varName = null;
        String varValue = null;
        int minlength, maxlength;


        if (element == null)
            return;

        children = element.getChildren();
        
        if (children == null)
            return;
        
        iterator = children.iterator();

        while (iterator.hasNext()) {
            subElem = (Element) iterator.next()  ;

            if ("var-name".equals(subElem.getName()))
                varName = subElem.getText();                            
            
            if ("var-value".equals(subElem.getName()))
                varValue = subElem.getText();
           
        } 
    
        if ("type".equals (varName)) {
            mapping.setFieldType(varValue);
            return;
        }

        if ("minlength".equals (varName)) {
            if (varValue == null)
                return;
            try {
                minlength = Integer.parseInt(varValue);
                mapping.setMinlength(minlength);
            } catch (Exception ex) {
                handleException (ex);            
            }
            return;
        }
        
        if ("maxlength".equals (varName)) {
            if (varValue == null)
                return;
            try {
                maxlength = Integer.parseInt(varValue);
                mapping.setMaxlength(maxlength);
            } catch (Exception ex) {
                handleException (ex);            
            }
            return;
        }
        
        if ("mask".equals (varName)) {
            if (varValue == null)
                return;

            mapping.setMask(varValue);

            return;
        }

    }
    
    

    
    private void loadField (Element element, DynaMapping mapping) {
        List children;
        Iterator iterator;
        Element subElem;
        String fieldName; 
        String depends;
        String dependArray[];
        int i;
        
        handleTrace ("FormBean.loadField()", 0);
        
        if (element == null || mapping == null)
            return;
        
        fieldName = mapping.getName();
        
        if (fieldName == null || fieldName.equals(""))
            return;
        
        
        children = element.getChildren();
        
        if (children == null)
            return;
        
        iterator = children.iterator();
        
        
        if (mapping.getFieldType() == null ||
                mapping.getFieldType().equals(""))
            mapping.setFieldType("String"); // Default field type
        
        while (iterator.hasNext()) {
            subElem = (Element) iterator.next()  ;  

            
            if ("var".equals(subElem.getName())) {
                loadVar (subElem, mapping);
            }
            
        }
        
        depends = element.getAttributeValue("depends");
        
        if (depends == null || depends.equals(""))
            return;
        
        dependArray = depends.split(",");
        
        for (i = 0; i < dependArray.length; i++) {
            depends = dependArray[i];
            
            if ("required".equals(depends)) {
                mapping.setRequired(true); // check min, max
                //handleTrace ("FormBean.loadField:" + fieldName + " is required", 0);
            } 
            if ("byte".equals(depends) || "short".equals(depends) ||
                    "integer".equals(depends) || "long".equals(depends) ||
                    "float".equals(depends) || "double".equals(depends) ||
                    "email".equals(depends) || "creditCard".equals(depends)
                    || "date".equals(depends))
                mapping.setFieldType(depends);
                    
        }
        
    }
    
    
    private void loadForm (FormBeanForm form, Element elem) {
        DynaMapping mappings[];       
        int i, count;
        String fieldName;
        List children;
        Iterator iterator;
        Element fieldElem;
        
        handleTrace ("FormBean.loadForm", 0);
        
        if (form == null || elem == null)
            return;        
               
        children = elem.getChildren();
        
        if (children == null)
            return;
        
        if (form.isDynaActionForm()) {
            
            mappings = form.getMappings();
            
            if (mappings == null) {
                return;
            }  
            
            for (i = 0; i < mappings.length; i++) {
                fieldName = mappings[i].getName();

                handleTrace ("FormBean.loadForm:mappings[i].getName():" +  fieldName, 0);

                if (fieldName == null || fieldName.equals(""))
                    continue;

                iterator = children.iterator();

                while (iterator.hasNext()) {
                    fieldElem = (Element) iterator.next();

                    //handleTrace ("FormBean.loadForm:fieldElem.getName():" +  fieldElem.getName());
                    if (!"field".equals (fieldElem.getName()))
                        continue;

                    if (!fieldName.equals(fieldElem.getAttributeValue("property")))
                        continue;

                    loadField (fieldElem, mappings[i]);
                }

            }
            return;
        }
 /*       
        if (children.size() > FormBeanForm.MAX_ENTRIES) {  // chech
            count = children.size();
            mappings = new DynaMapping[count];
        } else {
            count = FormBeanForm.MAX_ENTRIES;
            mappings = new DynaMapping[FormBeanForm.MAX_ENTRIES];                    
        }
        
        for (i = 0; i < count; i++) {
            mappings[i] = new DynaMapping ();
        }
       
        form.setMappings(mappings);
*/        
        mappings = form.getMappings();
        
        iterator = children.iterator();

        i = 0;
        while (iterator.hasNext()) {
            fieldElem = (Element) iterator.next();

            //handleTrace ("FormBean.loadForm:fieldElem.getName():" +  fieldElem.getName(), 0);
            if (!"field".equals (fieldElem.getName()))
                continue;

            fieldName = fieldElem.getAttributeValue("property");

            
            handleTrace ("FormBean.loadForm:fieldName:" +  fieldName, 0);           
            if (fieldName == null || fieldName.equals (""))
                continue;
            
            mappings[i].setName(fieldName);
            
            loadField (fieldElem, mappings[i]);
            i++;
        }       
        
    }

⌨️ 快捷键说明

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