langping86

stay hungry,stay foolish.

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
如何获取实体扩展属性的值
 
{一}内在关系
首先要知道BOS中实现的一些规则,主要说明以下几个东东的内在关系
BOSUuid ---> BOSType---> Entity--->Table
根据BOSUuid可以获取BOSType,根据BOSType就可以获取一个唯一的实体,通过实体就可以知道对应的元数据表是哪个
 
其实Entity这个东东就是一个配置文件,有些东西和Hibernate的hmp配置文件的作用基本一样
 
其次是BOS的主要功能,元数据解析,建模工具、界面设计工具这些地方大量使用了元数据解析,
 
下面就说重点了,如何解析元数据,不需要自己写DOM什么的,用现成的啊。
 
com.kingdee.bos.metadata.MetaDataLoaderFactory--元数据装载工厂类
com.kingdee.bos.metadata.util.MetaDataLoader--根据MetaDataLoaderFactory封装的工具类
com.kingdee.bos.metadata.MetaDataUtils--看看这个就知道entity_pkmappingfacade_pkmapping文件怎么使用了
 
{二}代码示例:
 
    /**
     * 获取OrgType类型的扩展属性值
     * @param ctx
     * @param bosType
     * @param exPropName
     * @return
     */
    public static OrgType getEntityExPropOrgTypeValue(Context ctx,BOSObjectType bosType,String exPropName){
        return OrgType.getEnum(getEntityExPropValue(ctx,bosType,exPropName));
    }
    
    /**
     * 获取Boolean类型的扩展属性值
     * @param ctx
     * @param bosType
     * @param exPropName
     * @return
     */
    public static boolean getEntityExPropBooleanValue(Context ctx,BOSObjectType bosType,String exPropName){
        return Boolean.parseBoolean(getEntityExPropValue(ctx,bosType,exPropName));
    }
    
    /**
     * 获取实体扩展属性值
     * @param ctx
     * @param bosType
     * @param exPropName
     * @return
     */
    public static String getEntityExPropValue(Context ctx,BOSObjectType bosType,String exPropName){
        EntityObjectInfo entity = MetaDataLoader.getEntity(ctx, bosType);
        return entity.getExtendedProperty(exPropName);
    }

 

 

 



posted on 2013-05-05 10:38  masb  阅读(1538)  评论(0)    收藏  举报