/* ==================================================================
* Created [2009-4-27 下午11:32:55] by Jon.King
* ==================================================================
* TSS
* ==================================================================
* mailTo:jinpujun@hotmail.com
* Copyright (c) Jon.King, 2009-2012
* ==================================================================
*/
package com.jinhe.tss.portal.engine.model;
import com.jinhe.tss.portal.entity.PortalStructure;
/**
* Portlet实例对象:用于解析门户中使用到的Portlet实例
*/
public class PortletInstanceNode extends AbstractSubNode implements DecoratorConfigable, IPageElement{
private PortalNode portal; // 所属Portal节点对象
private PageNode page; // 所属页面节点对象
private PortletNode portletNode; // Portlet对象
private DecoratorNode decoratorNode; // Portlet修饰器
public DecoratorNode getDecoratorNode() { return decoratorNode; }
public PortletNode getPortletNode() { return portletNode; }
public void setDecoratorNode(DecoratorNode decorator) { this.decoratorNode = decorator; }
public void setPortletNode(PortletNode portlet) { this.portletNode = portlet; }
public AbstractElementNode getDecoratorContent() {
return portletNode;
}
public PageNode getPage() {
return page;
}
public PortalNode getPortal() {
return portal;
}
public void setPage(PageNode page) {
this.page = page;
}
public void setPortal(PortalNode portal) {
this.portal = portal;
}
// 无儿子节点,本身为叶子节点 (但PortletInstanceNode可作为其包含的decoratorNode和portletNode的parent)
public void addChild( Node node ) {
// do nothing
}
public PortletInstanceNode(PortalStructure ps) {
this.id = ps.getId();
this.name = ps.getName();
this.code = ps.getCode();
}
public Object clone(){
PortletInstanceNode copy = (PortletInstanceNode) super.clone();
copy.decoratorNode = (DecoratorNode) this.decoratorNode.clone();
copy.portletNode = (PortletNode)this.portletNode.clone();
return copy;
}
public String getPageElementType() {
return "PortletInstance";
}
}