jtxmlconverter.java

来自「Java Pattern Oriented Framework (Jt) 是为了」· Java 代码 · 共 206 行

JAVA
206
字号

package Jt.xml;
import Jt.*;

/**
 *  Converts JT API calls into XML messages. These messages can be sent
 *  to remote objects. 
 */

public class JtXMLConverter extends JtObject {

    public static final String JtCLASS_NAME = JtXMLConverter.class.getName(); 
    public static final String JtCONVERT = "JtCONVERT";
    private static final long serialVersionUID = 1L;
    private JtList list = new JtList ();


    public JtXMLConverter() {
    }


    public Object createObject (Object class_name, Object id) {

        JtMessage msg1 = new JtMessage (JtObject.JtCREATE_OBJECT);   
        JtMessage msg2 = new JtMessage (JtList.JtADD); 

        //if (class_name == null || id == null) // check
        if (class_name == null) // check    
            return (null);

        msg1.setMsgContent(class_name);
        msg1.setMsgData(id);
        msg2.setMsgContent (msg1);

        list.processMessage(msg2);    

        return (null);
    }

    public Object sendMessage (Object id, Object msg) {

        JtMessage msg1 = new JtMessage (JtObject.JtSEND_MESSAGE);
        JtMessage msg2 = new JtMessage (JtList.JtADD);     
        
        if (id == null || msg == null)
            return (null);


        msg1.setMsgContent(id);
        msg1.setMsgData(msg);
        msg2.setMsgContent (msg1);


        list.processMessage(msg2);

   
        return (null);


    } 



    public void removeObject (Object id) {
        JtMessage msg1 = new JtMessage (JtObject.JtREMOVE_OBJECT);   
        JtMessage msg2 = new JtMessage (JtList.JtADD); 

        if (id == null)
            return;

        msg1.setMsgContent(id);
        msg2.setMsgContent (msg1);


        list.processMessage(msg2);    

    } 

    public void setValue (Object id, Object att, 
            Object value) {
        JtMessage msg1 = new JtMessage (JtObject.JtSET_VALUE);
        JtMessage msg2 = new JtMessage (JtList.JtADD);   

        //if (id == null || att == null || value == null)
        if (id == null || att == null)
            return;

        msg1.setMsgSubject(id);
        msg1.setMsgContent (att);
        msg1.setMsgData(value);
        msg2.setMsgContent (msg1);
        
        
        list.processMessage(msg2);  

    }


    public Object getValue (Object id, Object att) {
        JtMessage msg1 = new JtMessage (JtObject.JtGET_VALUE);
        JtMessage msg2 = new JtMessage (JtList.JtADD); 

        if (id == null || att == null)
            return (null);


        msg1.setMsgContent(id);
        msg1.setMsgData(att);
        msg2.setMsgContent (msg1);


        list.processMessage(msg2);  

        return (null);

    }

    String convertToXML () {

        JtXMLHelper helper;
        String xmlObj;
        JtMessage msg2 = new JtMessage (JtObject.JtXML_ENCODE);  

        helper = new JtXMLHelper ();

        msg2.setMsgContent (list);

        xmlObj = (String) helper.processMessage (msg2); 

        if (xmlObj == null) {
            handleError ("Fatal error: unable to convert to XML");
            return (null);
        }

        return (xmlObj);

    }

    // Process object messages

    public Object processMessage (Object event) {

        String msgid = null;
        JtMessage e = (JtMessage) event;
        //Object content;

        if (e == null)
            return null;

        msgid = (String) e.getMsgId ();

        if (msgid == null)
            return null;

        //content = e.getMsgContent();

        if (msgid.equals (JtXMLConverter.JtCONVERT)) { 
            return (convertToXML ());
        }  

        // Let the parent class process the message

        return (super.processMessage (event));     


    }


    /**
     * Demonstrates all the message processed by JtXMLConverter. 
     */

    public static void main(String[] args) {

        JtObject main = new JtObject ();
        JtMessage msg1;
        JtMessage msg = new JtMessage ("JtHELLO");
        JtXMLConverter converter;
        String str;

        //main.setLogFile ("log.txt");

        msg1 = new JtMessage ();

        msg1.setMsgId (JtXMLConverter.JtCONVERT);


        converter = (JtXMLConverter) main.createObject (JtXMLConverter.JtCLASS_NAME, 
        "adapter");

        converter.createObject (JtOSCommand.JtCLASS_NAME, "command");
        converter.setValue ("command", "command", "notepad");
        converter.sendMessage ("command", new JtMessage (JtOSCommand.JtEXECUTE));
        converter.getValue ("command", "command");
        converter.sendMessage ("command", msg);

        str = (String) main.sendMessage (converter, msg1);

        System.out.println ("XML =" + str);

    }

}


⌨️ 快捷键说明

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