• 获取EObject对象的反向引用对象


    在基于EMF模型的应用中经常会有这样的需求:

    当一个模型对象被一个特定的对象引用后,就不可以再被其他的对象引用。如何获取一个模型被那些其他模型引用了这个信息呢?

    当然一种解决方案是在建模的时候,把引用设成双向的。然而这样会造成一定的冗余,使你的模型稍显臃肿和复杂。其实如果你是用EMF来表示你的模型,通过EMF提供的API可以获得所有引用某个model的model列表:

    代码如下:

    EObject referencedModel = getReferencedModel();  // 被引用的对象

    List adapters = referencedModel .eAdapters();          //获得所有与对象关联的adapter

    for(Iterator it = adapters.iterator();it.hasNext();) {
            Object obj = it.next();
            // if the adapter is cross reference adapter
            if(obj instanceof CrossReferenceAdapter) {

                     Set refs = null;

                     // 返回所有引用referencedModel的对象

                     refs = ((CrossReferenceAdapter) obj).getInverseReferencers(referencedModel, null,null);

             }
    }

    方法getInverseReferencers()的参数参考EMF API.

  • 相关阅读:
    用shareSDK实现的简单分享
    可实现随意切换的button同时随切换改变title的颜色
    创建UITabBarController
    git 常用命令
    实现友盟分享
    IOS 打印语句
    ios 的frame,bound,center
    IOS绘图
    iPhone App 上架流程
    ios 常用字符串的操作
  • 原文地址:https://www.cnblogs.com/youngerbaby/p/651571.html
Copyright © 2020-2023  润新知