/* ================================================================== * 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.component.dynproperty; import java.util.List; import com.jinhe.tss.component.dynproperty.entity.DynableEntity; import com.jinhe.tss.component.dynproperty.entity.GridTemplate; import com.jinhe.tss.component.dynproperty.entity.PropertyDef; import com.jinhe.tss.component.dynproperty.entity.XFormTemplate; import com.jinhe.tss.component.dynproperty.entity.XFormTemplateTab; import com.jinhe.tss.component.dynproperty.support.IRemotePropertyService; import com.jinhe.tss.core.exception.BusinessException; /** * <p> IPropertyService.java </p> * 动态属性service接口,继承 动态属性远程调用service接口。 * * @author Jon.Jing 2008/04/14 10:18:54 $ */ public interface PropertyService extends IRemotePropertyService{ /** * 导入动态实体以及实体基本属性和模板信息。(远程) * @param docXmlStr */ void importDynableEntity(String docXmlStr, Long groupId); /** * 获取所有的动态实体组、动态实体以及各个实体包含的所有属性、还有实体的模板信息(包括Grid、Xform模板). * 并相应的组装起来。 * * @param isOnlyGroup * 是否只取动态实体组,移动的时候用到。 * @return */ List<?> getDynableEntities(boolean isOnlyGroup); /**************************************************************************************************** **************************** 实体组实体维护(实体维 护更多在父接口中) ******************************* *****************************************************************************************************/ /** * 根据id获取动态实体组或实体对象 * @return */ DynableEntity getGroupOrEntityById(Long id); /** * 保存动态实体组 * @param group * @return */ DynableEntity saveGroup(DynableEntity group); /** * 删除实体组或实体。 * 如果是实体组则,将该组下拥有的动态实体组和动态实体移动到根目录下; * 如果是实体,调用deleteDynableEntity(String entityCode)。 * @param id */ void deleteGroupOrEntity(Long id); /** * 获取可以移动至的实体组列表 * @param id * @return */ List<?> getCanMoveToGroups(Long id); /** * 移动动态实体 * @param id * @param targetId * 目标组ID */ void moveGroupOrEntity(Long id, Long targetId); /**************************************************************************************************** ********************************************* 属性维护 ******************************************** *****************************************************************************************************/ /** * 根据id值获取属性对象 * @param propertyId * @return */ PropertyDef getPropertyById(Long propertyId); /** * 保存属性 * @param property * @return */ PropertyDef saveProperty(PropertyDef property); /** * 删除动态属性以及动态属性值 * @param id */ void deleteProperty(Long id); /** * 在当前动态实体下复制一个属性 * @param id * @return */ PropertyDef copyProperty(Long id); /** * 复制属性到指定的动态实体。 * 如果 * @param id * 属性id * @param targetId * 目标实体id * @return */ PropertyDef copyPropertyTo(Long id, Long targetId); /** * 属性排序 * @param propertyId * @param targetId * @param direction */ void sortProperty(Long propertyId, Long targetId, int direction); /**************************************************************************************************** ********************************************* 模板维护 ******************************************** *****************************************************************************************************/ /** * 保存XForm模板布局. * 保存XForm模板declare节点和layout节点信息,并记录实体属性值保存到了哪个tab中. * @param tab */ void saveXForm(String layoutStr); /** * 新增或修改一个XForm模板 * @param xTemplate */ XFormTemplate saveXFormTemplate(XFormTemplate xTemplate); /** * 新增或修改一个XForm模板Tab页. * 保存XForm模板declare节点和layout节点信息,并记录实体属性值保存到了哪个tab中. * @param tab */ XFormTemplateTab saveXFormTemplateTab(XFormTemplateTab tab, String entityCode); XFormTemplateTab saveXFormTemplateTab(XFormTemplateTab tab); /** * 删除一个XForm模板包括其下所有的Tab页 * @param xTemplate */ void deleteXFormTemplate(Long xTemplateId); /** * 删除一个XForm模板Tab页,同时删除该tab页在PropertyTab表中和属性的对应关系 * @param tab */ void deleteXFormTemplateTab(Long tabId); /** * 获取某个动态对象实体所有的属性、某组XForm模板及其所有tab页信息。 * @param entityCode * @param templateCode * 模板code * @return */ Object[] getXFormTempalteInfo(String entityCode, String xCode); /** * 新增或修改一个Grid模板 * @param gTemplate */ GridTemplate saveGridTemplate(GridTemplate gTemplate); /** * 删除一个Grid模板包括其下所有的Tab页 * @param gTemplate */ void deleteGridTemplate(Long gTemplateId); /** * 获取某个指定的Grid模板,维护的时候用. * 区别远程接口中的getGridTemplate(String entityCode, String gCode)。 * * @param entityCode * @param templateCode * 模板code * @return */ String getGridTemplateInfo(String entityCode, String gCode); /** * 根据code值获取对应的动态实体对象 * @param entityCode * @return */ DynableEntity getDynableEntity(String entityCode) throws BusinessException; /** * 根据动态实体的code值和XForm模板的code值获取对象XForm模板 * @param entityCode * @param xCode * @return */ XFormTemplate getXFormTemplateByCode(String entityCode, String xCode) throws BusinessException; /** * 根据动态实体的code值和Grid模板的code值获取对象Grid模板 * @param entityCode * @param gCode * @return * @throws BusinessException */ GridTemplate getGridTemplateByCode(String entityCode, String gCode) throws BusinessException; /** * 获取一个对象,提供本方法主要是方便action中获取对象。 * @param clazz * @param id * @return */ Object getEntity(Class<?> clazz, Long id); }