/* ================================================================== * 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.dao; import java.util.List; import com.jinhe.tss.component.support.persistence.ITreeSupportDao; import com.jinhe.tss.portal.PortalConstants; import com.jinhe.tss.portal.entity.Decorator; import com.jinhe.tss.portal.entity.Layout; import com.jinhe.tss.portal.entity.PersonalTheme; import com.jinhe.tss.portal.entity.Portal; import com.jinhe.tss.portal.entity.PortalStructure; import com.jinhe.tss.um.permission.filter.PermissionFilter4Branch; import com.jinhe.tss.um.permission.filter.PermissionTag; public interface IPortalDao extends ITreeSupportDao<PortalStructure>{ /** * 根据portalId获取Portal实体 * @param id * @return */ Portal getPortalById(Long id); /** * 本方法将会被拦截进行资源注册操作,所以一般的保存应该直接调save方法。 * @param p * @return */ PortalStructure savePortalStructure(PortalStructure p); /** * 删除门户节点。 * 删除注册资源由拦截器ResourcePermissionInterceptor完成。 * @param ps */ void deletePortalStructure(PortalStructure ps); /** * 本方法是为了资源权限补齐拦截器ResourcePermissionInterceptor能拦截到门户结构的移动保存操作, * 从而可以对移动的资源根据新的父节点进行权限补齐处理。 * @param ps * @return */ PortalStructure movePortalStructure(PortalStructure ps); /** * 根据父亲节点获取所有子节点。 * 必须根据decode来排序,以保证层次和顺序结构。 * @param id * 父节点Id * @param operationId * 操作ID,拦截器用 * @return * 所有子节点 */ @PermissionTag( resourceType = PortalConstants.PORTAL_RESOURCE_TYPE, filter = PermissionFilter4Branch.class) List<PortalStructure> getChildrenById(Long id, String operationId); /** * 获取所有的父亲级节点,一直到根目录。 * 必须根据decode来排序,以保证层次和顺序结构。 * @param id * 当前节点 * @param operationId * 操作ID ,拦截器用 * @return */ @PermissionTag( resourceType = PortalConstants.PORTAL_RESOURCE_TYPE, filter = PermissionFilter4Branch.class) List<PortalStructure> getParentsById(Long id, String operationId); /** * 获取指定门户Portal的所有组成元素 * @param portalId * 门户ID * @param currentThemeId * @return */ Object[] getPortalElements(Long portalId, Long currentThemeId); /** * 获取默认的布局器,如果没有默认的则抛出异常 * @return */ Layout getDefaultLayout(); /** * 获取默认的修饰器,如果没有默认的则抛出异常 * @return */ Decorator getDefaultDecorator(); /** * 根据portalId获取门户结构根节点 * @param portalId * @return */ PortalStructure getRootPortalStructure(Long portalId); /** * 获取portal下的所有主题 * @param portalId * @return */ List<?> getThemesByPortal(Long portalId); /** * 获取用户的自定义主题 * @param portalId * @return */ PersonalTheme getPersonalTheme(Long portalId); }