📄 hpdlfactory.java
字号:
package com.hongsoft.agile.hpdl;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import com.hongsoft.agile.Global;
import com.hongsoft.res.database.PrivilegeTypeCache;
/**
* to create the object of XMLProperties,and implement the cache of it
*/
public class HpdlFactory {
private static Map xmlPropertyCache = new HashMap();
/**
* use the file,and create the xmlproperties we use the flyweight pattern
*
* @author Administrator
* @param file
* @return XMLProperties
*/
public static ProcessesObject createPackageObject(Session session,String file) throws HpdlException,HibernateException{
file=Global.getConfPath()+file;
File newFile = new File(file);
long lastModified = newFile.lastModified();
//不是新文件
if (xmlPropertyCache.containsKey(file)) {
//文件已经被改变
if (lastModified != ((HpdlParser) xmlPropertyCache
.get(file)).getLastModified()) {
xmlPropertyCache.remove(file);
HpdlParser xmlPropertiesHpdl = new HpdlParser(file);
xmlPropertiesHpdl.setLastModified(lastModified);
xmlPropertyCache.put(file, xmlPropertiesHpdl);
ProcessesObject po= xmlPropertiesHpdl.parsePackage();
PrivilegeTypeCache.init(session,po);
return po;
} else//文件没有被改变,此时对象中已经放入了PackageObject对象,直接取出就可以了
{
return ((HpdlParser)xmlPropertyCache.get(file)).getPo();
}
} else {
//是新文件
HpdlParser xmlPropertiesHpdl = new HpdlParser(file);
xmlPropertiesHpdl.setLastModified(lastModified);
xmlPropertyCache.put(file, xmlPropertiesHpdl);
ProcessesObject po=xmlPropertiesHpdl.parsePackage();
PrivilegeTypeCache.init(session,po);
return po;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -