Cougaar学习笔记之---定制特殊的AspectType和AspectValue

本文介绍如何在Cougaar中定义和注册自定义的AspectType及AspectValue,包括在Domain类中定义特殊AspectValue和AspectType的方法,并通过示例代码展示具体的实现步骤。

 动机:在Cougaar中,已经提供了一些标准的AspectType和AspectValue。但在实际的应用中,可能需要定制特殊的
AspectType和AspectValue.
  实现步骤:
  1、在Domain类中定义特殊的AspectValue和AspectType相关的信息, 并注册AspectValue相应的Factory
   Domain类要继承DomainAdapter, 核心代码如下:
public class PersistenceDomain extends DomainAdapter {
    //Aspect Type Factories
    /** DbChange Aspect */
    Factory DbChange = new Factory() {
            public int getKey() {return PersistenceDomainUtil.DBCHANGE_ASPECT;}
            public String getName() {return "DBCHANGE";}
            public AspectValue newAspectValue(Object o) {
                return DoubleAspectValue.create(PersistenceDomainUtil.DBCHANGE_ASPECT, o);
            }
        };
    /**
     * Load the domain and custom aspect types used throughout BOL
     */
    public void load() {
        super.load();
        loadCustomAspectTypes();
    }
    /**
     * Load Custom AspectType Factories
     */
    private void loadCustomAspectTypes() {
        if (AspectType.registry.get(PersistenceDomainUtil.DBCHANGE_ASPECT) == null) {
            AspectType.registry.registerFactory(DbChange);
        }

    }
  ....
}

 其中PersistenceDomainUtil.DBCHANGE_ASPECT的值是:
   public static final int DBCHANGE_ASPECT = AspectType.ASPECT_STRINGS.length + 2;
 
  2、注册Domain类
   在LDMDomains.ini文件中增加一项:
PersistenceDomain=com.justep.business.content.model.persistence.domain.PersistenceDomain

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值