隨筆-35  評論-97  文章-0  trackbacks-0

          在某些情況下,你對某些值的比較上可能會遇到形式上的不一致。比如你要判斷一個日期是否在某個時點之后,你當然可以重寫你的條件判別邏輯,但是,可能那不是最好的方法。簡單的一個方法就是:將日期化作long型數值,這樣你就只需比較數值大小了。

          現在,看看整體上簡單條件(值條件)的適配器的整體結構,以及怎樣去實行上面所提到的問題。

          基本上每個值條件都有一個適配器,對于對象條件也會有一個適配器,后面有相關介紹。值條件的適配器只要作用像是修正你的輸入值。“給我一個對象(可以是復雜的對象),我就給你一個合適的你所需形式返回值”-這是我對適配器的理解。

          在下面的示例中,就是,給定一個日期對象,適配器就給你一個long型數值。看看實現吧。

          public static void queryExample2()
              
          {
                  
          // 設定一個初始值
                  Calendar midnightJan1_1990 = Calendar.getInstance();
                  midnightJan1_1990.set(
          1990, Calendar.JANUARY, 1000);
                  
          long time = midnightJan1_1990.getTimeInMillis();
                  
          //數值適配器
                  NumberAdapter dateAdapter = new NumberAdapter.LongAdapter()
                  
          {    //把對象轉化為long數值返回
                      public long longValue(Object object)
                      
          {
                          
          return ((Date)object).getTime();
                      }

                  }
          ;

                  Object subject 
          = new Date();
                  
          //匹配指定日期是否在1990-1-1 凌晨之后
                  Condition cond = new NumberCondition.LongValue(time, Long.MAX_VALUE, (LongAdapter)dateAdapter);
                  System.out.println(
          "適配器測試:" + cond.isSatisfied(subject));
              }

          到此,這些條件的例子都沒有用到模型的數據,因為,它們都是對應簡單類型的條件,當然它們也可以同復雜類型關聯起來。后面會用到。如果你對EMF-Query興趣意猶未盡,但是對EMF還沒有一定的了解,那么你得先了解一下EMF的使用了。在這個帖子中有介紹一個不錯學習EMF的鏈接,后面的EMF-Query例子會同這個鏈接的模型聯系起來。

          http://www.aygfsteel.com/orangewhy/archive/2007/06/10/123134.html 起步EMF吧!

          后續部分就要同模型關聯了,真是激動!體現EMF-Query的真正價值!

          posted on 2007-06-10 13:46 三告習習 閱讀(954) 評論(0)  編輯  收藏 所屬分類: emf/gef/gmf
          主站蜘蛛池模板: 邹平县| 贺兰县| 天祝| 敖汉旗| 西藏| 凤山县| 桃园市| 芦溪县| 庆元县| 辽阳县| 霍城县| 宝鸡市| 凭祥市| 长宁区| 张家川| 邹城市| 靖州| 铜鼓县| 谢通门县| 临邑县| 个旧市| 安溪县| 苍梧县| 壶关县| 瓮安县| 榆社县| 清远市| 江门市| 青田县| 井研县| 大邑县| 恩平市| 诸城市| 永吉县| 义乌市| 通化市| 河津市| 鹤庆县| 金乡县| 托克托县| 阿荣旗|