jspgenerator.java

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

JAVA
1,639
字号
        if (elem != null) {
            generateInputFields2 (jadapter, formName, operation); // check
            attValue = elem.getAttributeValue("action");

            Prefix = capFirstLetter (prefix);

            if (attValue != null) {
                nValue = attValue.replaceAll("#name", Prefix);
                elem.setAttribute("action", nValue);              
            }


        }

        msg1.setMsgContent ("jsp:root/c:if/c:set");
        elem = (Element) factory.sendMessage(jadapter, msg1);

        if (elem != null) {
            /*
            attValue = elem.getAttributeValue("var");

            if (attValue != null) {
                nValue = attValue.replaceAll("#name", prefix);
                elem.setAttribute("var", nValue);              
            }
            */
            elem.setAttribute("var", formName);

        }

        factory.sendMessage(jadapter, new JtMessage (JDOMAdapter.SAVE_FILE));

        //System.out.println("content:" + jadapter.getContent());




    }


    private String replaceString (String str, String substr, String newsubstr) {

        int index;
        int length;
        String segment1;
        String result;

        if (str == null)
            return (null);

        if (substr == null || substr.equals ("") || 
                newsubstr == null)
            return (str);

        result = null;
        for (;;) {

            index = str.indexOf(substr, 0);


            if (index < 0) {
                if (result == null)
                    result = str;
                else
                    result = result + str;
                break;            
            }
            length = substr.length();

            segment1 = str.substring(0, index);

            str = str.substring(index+length);

            if (result == null)
                result = segment1 + newsubstr;
            else
                result = result + segment1 + newsubstr;
        }

        return (result);


    }
    /*   
    private void updateOperationColumn (JDOMAdapter jadapter) {
        JtMessage msg = new JtMessage (JDOMAdapter.FIND_ELEMENT);
        Element elem;
        String tmp;


        if (jadapter == null)
            return;


        msg.setMsgContent ("jsp:root/html:html/display:table/display:column/c:out"); 

        elem = (Element) factory.sendMessage(jadapter, msg);  
        if (elem != null)       
            elem.setAttribute("value", "${row.email}");

        msg.setMsgContent ("jsp:root/html:html/display:table/display:column");    
        elem = (Element) factory.sendMessage(jadapter, msg);    

        if (elem == null)
            return;

        tmp = elem.getText();
        tmp = tmp.replaceAll("#name", capFirstLetter (prefix));

        //tmp = replaceString(tmp, "#key", "<c:out value=\"${row.email1}\"/>");
        //System.out.println (tmp);
        //elem.setText(tmp);


    }
     */

    private void updateOperationColumn (String path) {
        JtFile file;
        String content;
        String tmp;
        JtMessage msg = new JtMessage (JtFile.JtSAVE_STRING);
        String key0;

        if (path == null)
            return;

        file = new JtFile ();

        file.setName(path);

        content = (String) factory.sendMessage(file, new JtMessage (JtFile.JtCONVERT_TO_STRING));

        if (content == null)
            return;

        tmp = content.replaceAll("#name", capFirstLetter (prefix));

        if (tmp == null)
            return;

        //if (key !=  null)
        //    tmp = replaceString (tmp, "#key", "<c:out value=\"${row." + key + "}\"/>");
        
        if (keys != null && keys.size() > 0) {
            tmp = replaceString (tmp, "#key0", "<c:out value=\"${row." + keys.get(0) + "}\"/>");
        } else {
            tmp = replaceString (tmp, "#key0", "");           
        }
            
        if (keys != null && keys.size() > 1) {
            tmp = replaceString (tmp, "#key1", "<c:out value=\"${row." + keys.get(1) + "}\"/>");
        } else {
            tmp = replaceString (tmp, "#key1", "");           
        }     
        
        if (keys != null && keys.size() > 2) {
            tmp = replaceString (tmp, "#key2", "<c:out value=\"${row." + keys.get(2) + "}\"/>");
        } else {
            tmp = replaceString (tmp, "#key2", "");           
        }  

        msg.setMsgContent(tmp);    

        factory.sendMessage(file, msg);

    }

    private void updateDisplayTag () {

        JDOMAdapter jadapter = new JDOMAdapter ();
        JtMessage msg = new JtMessage (JDOMAdapter.READ_FILE);
        JtMessage msg1 = new JtMessage (JDOMAdapter.FIND_ELEMENT);
        Element elem;
        String attValue, nValue;
        String Prefix;


        if (path == null) {
            handleError ("Attribute path needs to be set.");
            return;
        }
        
        /*
        if (className == null) {
            handleError ("Attribute className needs to be set.");
            return;
        }
        */
        
        if (formName == null) {
            handleError ("Attribute formName needs to be set.");
            return;
        }
        
        jadapter.setPath(path);

        factory.sendMessage(jadapter, msg);


        msg1.setMsgContent ("jsp:root/html:html/display:table");              
        elem = (Element) factory.sendMessage(jadapter, msg1);

        if (elem != null) {

            //generateColumns (jadapter, className); // check
            generateColumns (jadapter, formName); 
            
            factory.sendMessage(jadapter, new JtMessage (JDOMAdapter.SAVE_FILE));
            updateOperationColumn (path);
        }



        //System.out.println("content:" + jadapter.getContent());



    }
    
/*    
    private InputStream determineResourceStream (String path) {
        if (path == null)
            return (null);
        
        ServletContext context = (ServletContext) JtObject.getObjContext().getServletContext();
     
        return (context.getResourceAsStream(path));
        
    }
*/    
   
    private boolean readTemplate (JDOMAdapter templateAdapter, String templateName) {

        InputStream resourceStream;
        
        if (templateAdapter == null || templateName == null)
            return (false);
        

        resourceStream = this.getClass().getClassLoader().getResourceAsStream (templateName);
        
        if (resourceStream == null) {
            handleError ("Resource not found:" + templateName);
            return (false);
        }
        
        
        templateAdapter.setInputStream(resourceStream);
        factory.sendMessage (templateAdapter, new JtMessage (JDOMAdapter.READ_STREAM));
        
                
        return (true);
    }


    private void updateLinks () {

        JDOMAdapter jadapter = new JDOMAdapter ();
        JtMessage msg = new JtMessage (JDOMAdapter.READ_FILE);
        JtMessage msg1 = new JtMessage (JDOMAdapter.FIND_ELEMENTS);
        Element elem;
        String attValue, nValue;
        String Prefix;
        List elementList;
        Iterator iterator;


        if (path == null) {
            handleError ("Attribute path needs to be set.");
            return;
        }


        jadapter.setPath(path);

        factory.sendMessage(jadapter, msg);


        msg1.setMsgContent ("link");              
        elementList = (List) factory.sendMessage(jadapter, msg1);

        if (elementList == null)
            return;

        iterator = elementList.iterator();


        while (iterator.hasNext()) {

            elem = (Element) iterator.next();


            attValue = elem.getAttributeValue("page");

            if (attValue != null) {
                nValue = attValue.replaceAll("#name", capFirstLetter (prefix));
                elem.setAttribute("page", nValue);              
            }           

            //updateOperationColumn (path);
        }

        factory.sendMessage(jadapter, new JtMessage (JDOMAdapter.SAVE_FILE));
        System.out.println("content:" + jadapter.getContent());


    }  
    // Process object messages

    public Object processMessage (Object message) {

        String msgid = null;
        JtMessage msg = (JtMessage) message;


        if (msg == null)
            return null;

        msgid = (String) msg.getMsgId ();

        if (msgid == null)
            return null;

        factory.setStopClass(JtObject.class);
        // Generate descriptors

        if (msgid.equals (JtObject.JtACTIVATE)) {

            return (generateJsp1 ());
        }

        if (msgid.equals (JspGenerator.UPDATE_FORM)) {
            updateForm ((String) msg.getMsgContent ());
            return (null);
        }

        if (msgid.equals (JspGenerator.UPDATE_DISPLAY_TAG)) {
            updateDisplayTag ();
            return (null);
        }

        if (msgid.equals (JspGenerator.UPDATE_LINKS)) {
            updateLinks ();
            return (null);
        }

        // Let the superclass handle all other messages
        return (super.processMessage (message));

    }



    public static void main(String[] args) {

        JtFactory factory = new JtFactory ();  // Jt Factory
        String reply;
        JspGenerator jspGenerator;
        InputStream istream = null;
        JtMessage msg;
        //JtKeyboard keyboard = new JtKeyboard ();
        //String key;

        //factory.setLogging(true);

        if (args.length < 1) {
            System.err.println ("Usage: java Jt.struts.JspGenerator filename");
            return;
        }



        jspGenerator = (JspGenerator) factory.createObject (JspGenerator.JtCLASS_NAME);
        //jspGenerator.setClassName(args[0]);  
        
        try {
            istream = new FileInputStream (args[0]);
        } catch (Exception e) {
            e.printStackTrace ();
            System.exit (1);
        }
        jspGenerator.setInputStream(istream);

        msg = new JtMessage (JtObject.JtACTIVATE);


        reply = (String) factory.sendMessage (jspGenerator, msg);

        //jspGenerator.processMessage(new JtMessage (JtObject.JtPRINT));


        System.out.println (reply);   

        jspGenerator.setPath("/tmp/CreateMemberForm1.jsp");
        jspGenerator.setPrefix("Prefix");
        //jspGenerator.processMessage(new JtMessage (jspGenerator.UPDATE_FORM));

        factory.removeObject (jspGenerator);


    }


}



⌨️ 快捷键说明

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