📄 xmlpagefactory.java
字号:
package com.jdon.cms.xml;
import com.jdon.util.Debug;
import com.jdon.cms.Page;
import com.jdon.cms.Navlink;
import com.jdon.cms.Menu;
import com.jdon.cms.Body;
import com.jdon.cms.PageFactory;
import com.jdon.cms.content.ContentManager;
import com.jdon.cms.model.NavlinkModel;
import com.jdon.cms.model.BodyModel;
import com.jdon.util.UtilCache;
import com.jdon.util.UtilValidate;
import com.jdon.cms.content.ContentFilter;
import com.jdon.cms.content.filter.HTMLFilter;
/**
*
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Jdon.com Copyright (c) 2003</p>
* <p>Company: </p>
* @author banq
* @version 1.0
*/
public class XmlPageFactory extends PageFactory {
public final static String module = XmlPageFactory.class.getName();
private final static XmlUtil xmlUtil = XmlUtil.getInstance();
//maxsize is 5 page,
public static UtilCache contentCache = new UtilCache(5, 0);
public static UtilCache navlinkCache = new UtilCache();
public static UtilCache bodyCache = new UtilCache();
private NavlinkManager navlinkManager = null;
private BodyManager bodyManager = null;
private ContentManager contentManager = null;
private ContentFilter contentFilter = null;
public XmlPageFactory() {
navlinkManager = new NavlinkManager();
bodyManager = new BodyManager();
contentManager = new ContentManager();
contentFilter = new HTMLFilter();
}
/**
* get navlink instance
* @return
*/
public Navlink getNavlink() {
NavlinkModel navlink = (NavlinkModel) navlinkCache.get(Navlink.NAME);
if ( (navlink == null) || (navlink.isModified())) {
navlink = navlinkManager.getNavlinkFromFile();
navlinkCache.put(Navlink.NAME, navlink);
}
return navlink;
}
/**
* get Id of the page
* if this is compulicated system, need CountGenerator!
* @return
*/
public Integer getId() {
Integer newId = null;
Navlink navlink = getNavlink();
if (navlink.getCount() == null)
newId = new Integer(1);
else{
newId = new Integer(navlink.getCount().intValue() + 1);
}
navlink.setCount(newId);
return newId;
}
//----- page menu operation ---------//
/**
* create a new Menu
* @param Id
* @return
*/
public Menu createMenu(Integer Id) {
return navlinkManager.createMenu(Id);
}
/**
* get a Menu Instance
* @param Id
* @param navlink
* @return
*/
public Menu getMenu(Integer Id, Navlink navlink) {
Menu menu = null;
try {
menu = navlinkManager.findByPrimaryKey(Id, navlink);
} catch (Exception ex) {
Debug.logError(" getMenu error:" + ex, module);
}
return menu;
}
/**
* update a exsited Menu
* @param menu
* @param page
* @return
*/
public Menu updateMenu(Menu menu, Page page) {
return navlinkManager.updateMenu(menu, page);
}
/**
* delete the menu
* @param menu
* @param navlink
*/
public void deleteMenu(Menu menu, Navlink navlink) {
navlinkManager.deleteMenu(menu, navlink);
}
/**
* save changed navlink to persitence
* navlink is a collection of all menus,
* if menu changed, navlink must be saved.
* @param navlink
*/
public void saveNavlink(Navlink navlink) {
try {
navlinkManager.write( (NavlinkModel) navlink);
navlinkCache.put(Navlink.NAME, navlink);
} catch (Exception ex) {
Debug.logError("!!! saveNavlink error" + ex, module);
}
}
//----- page content operation ---------//
/**
* save the page content in the body
* @param Id
* @param content
* @return
*/
public String saveContent(Integer Id, String content) {
content = contentFilter.change(content);
contentCache.put(Id, content);
return contentManager.saveContent(Id, content);
}
/**
* get the content
* @param Id
* @return
*/
public String getContent(Integer Id) {
String content = (String) contentCache.get(Id);
if (UtilValidate.isEmpty(content)) {
content = contentManager.getContent(Id);
contentCache.put(Id, content);
}
content = contentFilter.unchange(content);
return content;
}
/**
* delete content
* @param Id
*/
public void deleteContent(Integer Id) {
contentManager.deleteContent(Id);
contentCache.remove(Id);
}
//----- page body operation ---------//
/**
* get the menu
* @param Id
* @return
*/
public Body getBody(Integer Id) {
BodyModel body = (BodyModel) bodyCache.get(Id);
if ( (body == null) || (body.isModified())) {
body = bodyManager.findByPrimaryKey(Id);
bodyCache.put(Id, body);
}
return body;
}
/**
* create a new Body Instance
* @param Id
* @return
*/
public Body createBody(Integer Id) {
Body body = bodyManager.create(Id);
bodyCache.put(Id, body);
return body;
}
/**
* update a exsited body
* @param body
*/
public void updateBody(Body body) {
bodyManager.update( (BodyModel) body);
bodyCache.put(body.getId(), body);
}
/**
* delete a Body
* @param body
*/
public void deleteBody(Body body) {
bodyManager.delete( (BodyModel) body);
bodyCache.remove(body.getId());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -