package edu.scau.agent.only;
import java.io.File;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import edu.scau.message.ThemeMessage;
import edu.scau.message.common.util.ConvertUtil;
import edu.scau.message.common.util.DocumentUtil;
import edu.scau.message.factory.MessageFactory;
import edu.scau.message.factory.MessageType;
import edu.scau.zis.file.FileConstant;
import edu.scau.zis.file.FileUtil;
import edu.scau.zis.recieve.XmlParser;
import edu.scau.zis.xml.UserBeanAnalyer;
public class FileAction {
// 代理使用,获取自己的id
public static String getMyId() {
String id = null;
File file = new File(FileConstant.MY_AGENT_ID);
if (!file.exists()) {
return id;
}
Document doc1 = DocumentUtil.readDocument(FileConstant.MY_AGENT_ID);
id = doc1.getRootElement().selectSingleNode("/agent_id/id").getText();
return id;
}
// agent使用,保存自己的id
public static boolean saveMyId(String id) {
File file = new File(FileConstant.MY_AGENT_ID);
if (!file.exists()) {
FileUtil.createDir(FileConstant.AGENT_ID_DIR);
Document doc = DocumentHelper.createDocument();
doc.addElement("agent_id");
DocumentUtil.saveDocument(doc, FileConstant.MY_AGENT_ID);
Document doc1 = DocumentUtil.readDocument(FileConstant.MY_AGENT_ID);
Element e=doc1.getRootElement().addElement(FileConstant.AGENT_ID_TARGET);
e.setText(id);
e.addAttribute("still", "true");
DocumentUtil.saveDocument(doc1, FileConstant.MY_AGENT_ID);
return true;
} else {
System.out.println("已经存在!");
return false;
}
}
//代理使用,判断注册是否有效
public static boolean RegisterConnect(){
File file = new File(FileConstant.MY_AGENT_ID);
if (!file.exists()) {
return false;//文件不存在,无效
} else {
Document doc1 = DocumentUtil.readDocument(FileConstant.MY_AGENT_ID);
String still= ((Element)doc1.getRootElement().selectSingleNode("/agent_id/id")).attributeValue("still");
if(still.equals("false"))
return false;
return true;
}
}
//代理使用,取消注册
public static boolean cancelRegister(){
File file = new File(FileConstant.MY_AGENT_ID);
if (file.exists()) {
Document doc1 = DocumentUtil.readDocument(FileConstant.MY_AGENT_ID);
((Element)doc1.getRootElement().selectSingleNode("/agent_id/id")).addAttribute("still", "false");
DocumentUtil.saveDocument(doc1, FileConstant.MY_AGENT_ID);
return true;
} else {
return false;
}
}
// 代理使用,更新主题报文
public static boolean saveTheme(String xml) {
File file = new File(FileConstant.THEME_FILE);
if (file.exists()) {
FileUtil.deleteFile(FileConstant.THEME_FILE);
}
Document doc1=null;
try {
doc1 = DocumentHelper.parseText(xml);
} catch (DocumentException e) {
e.printStackTrace();
}
DocumentUtil.saveDocument(doc1, FileConstant.THEME_FILE);
return true;
}
//代理使用,订阅主题
public static boolean subscribeTheme(String theme){
File file = new File(FileConstant.THEME_DIR+theme+"/");
if(!file.exists()){
FileUtil.createDir(FileConstant.THEME_DIR+theme+"/");
return true;
}
return false;
}
//代理使用,取消订阅
public static boolean subscribeConcel(String theme){
File file = new File(FileConstant.THEME_DIR+theme+"/");
if(file.exists()){
FileUtil.deleteAllFile(FileConstant.THEME_DIR+theme+"/");
return true;
}
return false;
}
//代理使用,保存来自其他代理的数据,参数为主题,显示标记,文件名,数据
public static boolean saveOtherPublishData(String theme,String mark,String fileName,String xml){
File file = new File(FileConstant.THEME_DIR + theme + "/");
if(file.exists()){
file=new File(FileConstant.THEME_DIR + theme + "/"+FileConstant.PUBLISH_INDEX_FILE);
if(!file.exists()){
Document doc=DocumentHelper.createDocument();
doc.addElement(FileConstant.PUBLISH_INDEX_FILE_ROOT);
DocumentUtil.saveDocument(doc, FileConstant.THEME_DIR + theme + "/"+FileConstant.PUBLISH_INDEX_FILE);
}
Document doc=DocumentUtil.readDocument(FileConstant.THEME_DIR + theme + "/"+FileConstant.PUBLISH_INDEX_FILE);
Element node=doc.getRootElement().addElement(FileConstant.PUBLISH_INDEX_FILE_NODE);
node.addAttribute(FileConstant.PUBLISH_INDEX_FILE_NODE_ATTR1, mark);
node.addAttribute(FileConstant.PUBLISH_INDEX_FILE_NODE_ATTR2, fileName);
DocumentUtil.saveDocument(doc, FileConstant.THEME_DIR + theme + "/"+FileConstant.PUBLISH_INDEX_FILE);
try {
DocumentUtil.saveDocument(DocumentHelper.parseText(xml), FileConstant.THEME_DIR + theme + "/"+fileName);
} catch (DocumentException e) {
e.printStackTrace();
}
return true;
}else{
System.out.println("尚未订阅该主题");
return false;
}
}
//代理使用,删除存在于本地的文件
public static boolean deleteOtherPublishData(String theme,String mark,String fileName){
File file = new File(FileConstant.THEME_DIR + theme + "/");
if(file.exists()){
file=new File(FileConstant.THEME_DIR + theme + "/"+FileConstant.PUBLISH_INDEX_FILE);
if(!file.exists()){
System.out.println("无保存文件!");
return false;
}
Document doc=DocumentUtil.readDocument(FileConstant.THEME_DIR + theme + "/"+FileConstant.PUBLISH_INDEX_FILE);
Element root=doc.getRootElement();
for(Iterator<Element> it=root.elementIterator(FileConstant.PUBLISH_INDEX_FILE_NODE);it.hasNext();){
Element a=it.next();
if(a.attributeValue(FileConstant.PUBLISH_INDEX_FILE_NODE_ATTR1).equals(mark)&&a.attributeValue(FileConstant.PUBLISH_INDEX_FILE_NODE_ATTR2).equals(fileName)){
root.remove(a);
FileUtil.deleteFile(FileConstant.THEME_DIR + theme + "/"+fileName);
break;
}
}
DocumentUtil.saveDocument(doc, FileConstant.THEME_DIR + theme + "/"+FileConstant.PUBLISH_INDEX_FILE);
return true;
}else{
System.out.println("尚未订阅该主题");
return false;
}
}
//代理使用,以一定格式保存数据
public static void saveData(String theme,String xml){
try {
String xml_root=DocumentHelper.parseText(xml).getRootElement().getName();
UserBeanAnalyer a=((UserBeanAnalyer)Application.context.get(Application.ANALYER));
String node=a.markMap.get(xml_root);
String mark=XmlParser.parseMark(xml, node);
String fileName=mark+"_"+System.currentTimeMillis()+".xml";
if(FileAction.saveOtherPublishData(theme, mark, fileName, xml)){
System.out.println("保存成功");
return ;
}
System.out.println("保存失败");
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 代理使用,装载所有的主题
public static List<String> initTheme() {
File file = new File(FileConstant.THEME_FILE);
if (file.exists()) {
Document doc = DocumentUtil.readDocument(FileConstant.THEME_FILE);
ThemeMessage tm = (ThemeMessage) MessageFactory
.createMessage(MessageType.THEME);
DocumentUtil.parse(tm, doc);
return tm.getThemes();
} else {
return null;
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
zis.rar (83个子文件)
zis2
.settings
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.wst.jsdt.ui.superType.container 49B
.jsdtscope 500B
org.eclipse.jdt.core.prefs 330B
src
Application.xml 467B
bind.xml 366B
edu
scau
zis
jms
DefaultConsumer.java 1KB
AbstractProducer.java 4KB
DefaultProducer.java 965B
AbstractConsumer.java 6KB
test
UserInterface.java 309B
T.java 173B
News.java 761B
UserInterfaceImpl.java 1KB
file
FileConstant.java 2KB
FileUtil.java 3KB
recieve
ConditionBuilder.java 821B
XmlParser.java 5KB
xml
ApplicationBeanAnalyer.java 2KB
UserBeanAnalyer.java 5KB
ObjectControl.java 2KB
ClassConverter.java 555B
agent
only
ReceiveActions.java 3KB
SomeActions.java 3KB
Application.java 3KB
FileAction.java 7KB
message
HeaderVisitor.java 911B
SubscribeMessage.java 1KB
PublishMessage.java 3KB
factory
MessageType.java 249B
MessageFactory.java 1KB
UnRegisterMessage.java 886B
ThemeMessage.java 2KB
common
util
DocumentUtil.java 2KB
ConvertUtil.java 1KB
interfaces
Message.java 387B
Actions.java 443B
RegisterMessage.java 1KB
HeaderMessage.java 2KB
UnsubscribeMessage.java 1KB
.project 1KB
WebRoot
META-INF
MANIFEST.MF 36B
WEB-INF
web.xml 371B
classes
Application.xml 467B
bind.xml 366B
edu
scau
zis
jms
DefaultConsumer.class 2KB
AbstractConsumer.class 7KB
DefaultProducer.class 1KB
AbstractProducer.class 5KB
test
News.class 1KB
T.class 382B
UserInterface.class 531B
UserInterfaceImpl.class 2KB
file
FileUtil.class 3KB
FileConstant.class 2KB
recieve
XmlParser.class 4KB
ConditionBuilder.class 1KB
xml
ClassConverter.class 785B
ApplicationBeanAnalyer.class 3KB
UserBeanAnalyer.class 7KB
ObjectControl.class 3KB
agent
only
ReceiveActions.class 3KB
SomeActions.class 4KB
Application.class 3KB
FileAction.class 6KB
message
UnsubscribeMessage.class 2KB
RegisterMessage.class 2KB
HeaderMessage.class 3KB
SubscribeMessage.class 2KB
PublishMessage.class 3KB
factory
MessageType.class 1KB
MessageFactory.class 2KB
UnRegisterMessage.class 2KB
HeaderVisitor.class 1KB
common
util
DocumentUtil.class 3KB
ConvertUtil.class 2KB
interfaces
Actions.class 293B
Message.class 308B
ThemeMessage.class 3KB
lib
public_topic.jsp 844B
index.jsp 849B
.mymetadata 284B
.classpath 994B
.myeclipse
共 83 条
- 1
资源评论
JonSco
- 粉丝: 66
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- SSCMS登录模块需要的JS文件
- JSP网络购物中心毕业设计(源代码+论文).rar
- 白盒测试报告.docx
- 基于LM5117芯片评估开发板硬件参考设计(原理图+PCB)+中英文数据手册资料.zip
- 照片批量重命名软件(文件批量修改图片文件名)
- app.apk
- 人工智能(AI)是计算机科学的一个分支,旨在开发和应用能够模拟、延伸和扩展人类智能的理论、方法和技术,包括机器人、语言识别、图像
- 嵌入式与物联网开发是当今信息技术领域的两大重要分支,它们相互交织,共同推动着智能化时代的进步 嵌入式开发主要关注在嵌入式操作
- 网络安全,这一看似高深莫测的领域,实则与我们每个人的生活息息相关
- 毕业设计基于深度学习的视觉问答系统源码+文档说明+答辩PPT.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功