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 + -
显示快捷键?