validatorlconfigfile.java

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

JAVA
249
字号
package Jt.wizard;

import java.util.Iterator;
import java.util.List;
import Jt.JtFactory;
import Jt.JtMessage;
import Jt.JtObject;
import Jt.xml.JDOMAdapter;
import org.jdom.Element;

/**
 * Handles XML configuration files (internal wizard class).
 */

public class ValidatorlConfigFile extends JtObject {
    private static final long serialVersionUID = 1L;
    public static final String JtCLASS_NAME = ValidatorlConfigFile.class.getName(); 
    private JtFactory factory = new JtFactory ();
    JDOMAdapter adapter;
    private boolean initted = false;
    private String path;



    public String getPath() {
        return path;
    }

    public void setPath(String path) {
        this.path = path;
    }


    // Initialize 

    private boolean initialized () {
        adapter = new JDOMAdapter ();

        if (path == null) {
            handleError ("attribute path needs to be set");
            return (false);
        }
        
        adapter.setPath(path);   
        factory.sendMessage (adapter, new JtMessage (JDOMAdapter.READ_FILE));

        if (adapter.getObjException() != null) {
            this.setObjException(adapter.getObjException());
            return (false);
        }

        return (true);

    }
    
    private Element read (String id) {
        return (findElement (id));
    }

    private void create (String parentPath, Element newElem) {

        JtMessage msg1 = new JtMessage (JDOMAdapter.SAVE_FILE);
        JtMessage msg2 = new JtMessage (JDOMAdapter.ADD_ELEMENT);

        if (newElem == null || parentPath == null)
            return;


        if (adapter == null)
            return;


        msg2.setMsgData(parentPath);
        msg2.setMsgContent(newElem);
        newElem.detach ();
        factory.sendMessage (adapter, msg2);

        factory.sendMessage (adapter, msg1);
        return;     
    }
    
    private void delete (Element elem) {
        String name;
        JtMessage msg = new JtMessage (JDOMAdapter.FIND_ELEMENTS);
        JtMessage msg1 = new JtMessage (JDOMAdapter.SAVE_FILE);
        List forms;
        Iterator iterator;
        Element tmp;
        
        
        if (elem == null)
            return;
        
        name = elem.getAttributeValue("name");
        
        if (name == null)
            return;
        
        if (adapter == null)
            return;
        
        msg.setMsgContent("form");        
        forms =  (List) factory.sendMessage(adapter, msg);
        
        if (forms == null)
            return;
        
        iterator = forms.iterator();
        
        while (iterator.hasNext()) {
            tmp = (Element) iterator.next();

            if (name.equals(tmp.getAttributeValue("name"))) {
                handleTrace ("XmlConfigFile.delete:" + tmp.getAttributeValue("name"), 0);
                tmp.detach();
                factory.sendMessage(adapter, msg1);
                return;
            }
        }        
        
    }

    private Element findElement (String  name) {

        JtMessage msg = new JtMessage (JDOMAdapter.FIND_ELEMENTS);
        List forms;
        Iterator iterator;
        Element tmp;
                
        
        if (name == null)
            return (null);
        
        if (adapter == null)
            return (null);
        
        msg.setMsgContent("form");
        
        forms =  (List) factory.sendMessage(adapter, msg);
        
        if (forms == null)
            return (null);
        
        iterator = forms.iterator();
        
        while (iterator.hasNext()) {
            tmp = (Element) iterator.next();

            if (name.equals(tmp.getAttributeValue("name"))) {
                handleTrace ("XmlConfigFile.findElement:" + tmp.getAttributeValue("name"), 0);
                return (tmp);
            }
        }        

        return (null);
    }
    
    private void update (Element elem) {
        JtMessage msg = new JtMessage (JDOMAdapter.SAVE_FILE);
        if (elem == null)
            return;
        // to be completed
        factory.sendMessage (adapter, msg);
        
    }
    
    
    /**
     * Process object messages.
     * <ul>
     * </ul>
     * @param message message
     */

    public Object processMessage (Object message) {

        Element elem;

        JtMessage e = (JtMessage) message;

        if (!initted) {
            initted = initialized ();
            
            if (!initted)
                return (null);

        }    

        if (e == null ||  (e.getMsgId() == null))
            return (null);


        if (e.getMsgId().equals(JtObject.JtCREATE)) {


            create ((String) e.getMsgData(), 
                    (Element) e.getMsgContent());
            return (null);

        }

        if (e.getMsgId().equals(JtObject.JtDELETE)) {

            elem = (Element) e.getMsgContent();

            delete (elem);
            return (null);

        }
        
        
        if (e.getMsgId().equals(JtObject.JtUPDATE)) {

            elem = (Element) e.getMsgContent();
            update (elem);
            return (null);

        }
        
        if (e.getMsgId().equals(JtObject.JtREAD)) {

            return (read ((String) e.getMsgContent()));

        }
        
        return (super.processMessage(message));

    }
    
    /**
     * Demonstrates the messages processed by this class
     */

    public static void main(String[] args) {

        JtFactory factory = new JtFactory ();
        ValidatorlConfigFile configFile = new ValidatorlConfigFile ();
        JtMessage msg;



        msg = new JtMessage (ValidatorlConfigFile.JtCREATE);

        factory.sendMessage (configFile, msg);


    }
}

⌨️ 快捷键说明

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