<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>


    隨筆-35  評(píng)論-97  文章-0  trackbacks-0

    基礎(chǔ)條件

    EMF Model Query Framework 提供了很多方便使用的條件,這些條件實(shí)現(xiàn)了用于簡(jiǎn)單的數(shù)據(jù)類型斷言。包括strings, numbers, 和 booleans. 這些條件用于模型元素的EAttribute之間所進(jìn)行的邏輯操作.。

    看看這些條件結(jié)構(gòu):

    從結(jié)構(gòu)圖上可以看出,Condition是最為條件的最頂層父類,它能作各種條件的邏輯操作,AND、OR等,說(shuō)明條件是可以復(fù)合的。而且,Comdition類依賴ConditionPolicy的依賴使得條件能滿足全匹配(ALL)或者任意匹配(ANY)的策略。

    Condition三個(gè)子類CompoundCondition(復(fù)合條件),Not(非條件)和ObjectInstanceCondition(對(duì)象實(shí)例條件)

    很容易也看出,CompoundCondition的子類都是一些有關(guān)復(fù)合的條件類。這些都是可以進(jìn)行邏輯上的復(fù)合的。

    注意到Implies(蘊(yùn)含),在數(shù)學(xué)上蘊(yùn)含是有這樣的規(guī)則:當(dāng)?shù)谝粋€(gè)表達(dá)式為真,且第二個(gè)表達(dá)式為假時(shí),結(jié)果為假,否則為真。記住哦,否則很容易搞錯(cuò)的。特別是在條件進(jìn)行復(fù)合時(shí)運(yùn)用蘊(yùn)含操作,要認(rèn)真分析前后的表達(dá)式。

    簡(jiǎn)單條件類型

    看看下面的結(jié)構(gòu)圖就知道條件是如何與簡(jiǎn)單類型進(jìn)行匹配:

    可以很容易看出,這些其實(shí)都是一些值類型條件,只是有些條件作了一些擴(kuò)展的匹配功能,比如字符串條件可以不但可以從字符串內(nèi)容上(包括子串和正則表達(dá)式匹配),還可一從字符長(zhǎng)度上匹配。

    下面來(lái)舉一些使用例子來(lái)看看條件是如果匹配的。

     

    public static void queryExample1()
        
    {
            Object subject 
    = 100d; 
            Condition a 
    = new NumberCondition.DoubleValue(10.0d,1000.0d);  //是否在100-1000的double內(nèi)
            System.out.println("100 是否在10-1000范圍? " + a.isSatisfied(subject));
            
            Condition b 
    = new BooleanCondition(false);
            System.out.println(
    "true 是否滿足false條件? " + b.isSatisfied(true));
            
            Condition c 
    = new StringValue("EMF-Query"truenew StringAdapter(){
                
    public String getString(Object object)
                
    {
                    
    return object.toString();
                }

            }
    );
            System.out.println(
    "“EMF-Query” 是否滿足c條件?" + c.isSatisfied("emf-query"));
            
            Condition a1 
    = new NumberCondition.DoubleValue(10.0d,15.0d);  //是否在100-1000的double內(nèi)
            Condition a2 = new NumberCondition.DoubleValue(108d,1000.0d);  //是否在100-1000的double內(nèi)
            
    //蘊(yùn)含:當(dāng)?shù)谝粋€(gè)表達(dá)式為真,且第二個(gè)表達(dá)式為假時(shí),結(jié)果為假,否則為真。
            Condition complex = a.IMPLIES(a1.OR(a2));//
            System.out.println("復(fù)合條件測(cè)試:" + complex.isSatisfied(subject));
            
            StringCondition cond 
    = new StringRegularExpressionValue("A+");
            System.out.println(
    "正則表達(dá)式測(cè)試:" + cond.isSatisfied("CATGGTGCCAC"));
            
            Collection subjects 
    = new ArrayList(); //多個(gè)將要匹配的主題
            subjects.add(100d);
            subjects.add(200d);
            subjects.add(209d);
            subjects.add(2000d);
            Condition  interzone
    = new NumberCondition.DoubleValue(100.0d,1000.0d);
            
    //全匹配策略
            System.out.println("全匹配策略: " + ConditionPolicy.ALL.isSatisfied(interzone, subjects));
            
    //任意匹配策略
            System.out.println("任意匹配策略: " + ConditionPolicy.ANY.isSatisfied(interzone, subjects));
        }

    例子很簡(jiǎn)單,不需要再作太多的說(shuō)明了吧。想提提的就是條件一般是用這個(gè)condition.isSatisfied(subject) 方法來(lái)匹配的。ObjectInstanceCondition留到后面的例子吧。看看輸出的結(jié)果:

    100 是否在10-1000范圍? true
    true 是否滿足false條件? false
    “EMF
    -Query”是否滿足c條件?false
    復(fù)合條件測(cè)試:
    false
    正則表達(dá)式測(cè)試:
    true
    全匹配策略: 
    false
    任意匹配策略: 
    true
    posted on 2007-06-10 03:37 三告習(xí)習(xí) 閱讀(1178) 評(píng)論(0)  編輯  收藏 所屬分類: emf/gef/gmf
    主站蜘蛛池模板: 国产成人精品日本亚洲专一区| 手机看片久久国产免费| MM131亚洲国产美女久久| 麻豆va在线精品免费播放| 日韩免费毛片视频| 国产精品国产亚洲区艳妇糸列短篇| 日本不卡免费新一二三区| 久久久亚洲精华液精华液精华液| 在线精品免费视频| 美女扒开屁股让男人桶爽免费| 免费h黄肉动漫在线观看 | 77777亚洲午夜久久多喷| 成人午夜免费福利视频| 亚洲专区一路线二| 岛国大片免费在线观看| 在线91精品亚洲网站精品成人| 亚洲无码视频在线| 久草免费福利视频| 亚洲欧洲日韩极速播放| 国产精品色午夜免费视频| av电影在线免费看| 亚洲精品免费在线观看| 在线视频观看免费视频18| 国产亚洲福利精品一区二区| 在线精品亚洲一区二区小说| 少妇无码一区二区三区免费| 色婷五月综激情亚洲综合| 免费一级毛片一级毛片aa| 免费看成人AA片无码视频吃奶| 亚洲系列国产精品制服丝袜第| 啦啦啦在线免费视频| 丝瓜app免费下载网址进入ios| 亚洲天天做日日做天天欢毛片 | 玖玖在线免费视频| 国产成人精品日本亚洲11| 亚洲国产主播精品极品网红| 日韩插啊免费视频在线观看 | 国产成人亚洲合集青青草原精品 | 亚洲午夜视频在线观看| 色视频色露露永久免费观看| 国内精品久久久久影院免费|