日本一区二区免费播放_麻豆导航_久久精品99_国产性av_色婷婷噜噜久久国产精品12p_av福利资源_精品综合久久

當(dāng)前位置:首頁 > 網(wǎng)站舊欄目 > 學(xué)習(xí)園地 > 設(shè)計軟件教程 > EMF開發(fā)指南之Attribute詳解

EMF開發(fā)指南之Attribute詳解
2010-01-14 22:43:44  作者:  來源:
★simple attribute沒什么好說的,是最基本的類型,與單值(single value)的java基本類型(int,boolean,String等)相對應(yīng)
★data type attribute,所有由emf model生成的類型都是由EObject派生的,不過還有一些類不是從EObject派生的,這時候就需要自定義一個Ecore Date Type 和我們要使用的類型對應(yīng),在這里定義的data type只是起符號的作用,在使用的時候跟simple data沒什么區(qū)別,在運(yùn)行的時候?qū)⒆鳛橐粋實(shí)際java類型的代理存在,在emf model中,所有的類型都是EDataType的一個實(shí)例,與基本類型不同在于,int,boolean,String是emf model預(yù)定義的(java.util.Date也是基本類型,而java.sql.Date不是),對于自定義的data type來說,還存在一個問題,就是序列化(或反序列化)的時候,需要將自定義的類型串行化成string(或反之),默認(rèn)會調(diào)用toString方法,但是emf framework提供了更好的方式,即在package的Factory類中增加了兩個方法convertXxxxToString(EDataType eDataType, Object instanceValue) 和createXxxxFromString(EDataType eDataType, String initialValue) ,我們可以替換里面的默認(rèn)做法使用自己的實(shí)現(xiàn),因此每次增加一個自定義的DataType類型的時候,我們也要在factory中重新實(shí)現(xiàn)這兩個方法。
★在annotated java中無須定義Data Type接口,emf generator會根據(jù)相關(guān)attribute在Package和Factory類中添加與EDataType相關(guān)的內(nèi)容。
★enumeration attribute,attribute表示類型、狀態(tài)的時候一般采用枚舉類型屬性。因?yàn)樯傻膃numeration 類都有一個private的構(gòu)造函數(shù),因此可以使用==來比較兩個enumeration的異同。同時enumeration還包含一系列int類型的常量來表示每種枚舉類型的實(shí)際值。
★multi-value attribute 就是對應(yīng)的get方法返回值是EList(Array)的attribute,如果希望List中的每一個值均唯一,那么需要設(shè)置unique為true,一般情況下,我們不使用String[]作為multi-value attribute,這個主要跟notification有關(guān),一般數(shù)組只是針對char和byte的情況。
★java.util.List和EList之間的區(qū)別是后者多了一個remove()方法
★default value 只有single valued attribute(data type attribute也算一種single valued attribute)才有默認(rèn)值,默認(rèn)情況下,boolean是false,數(shù)字類型是0,對象類型是null,如果是非string類型的attribute,ecore model將采用factory中的convertStringToXxxx方法將制定的字符串默認(rèn)值轉(zhuǎn)換成指定的值
★volatile attribute 默認(rèn)情況下將使用一個field來保存attribute的值,但是volatile類型的屬性有些特別,在get的時候它不會采用保存在field中的值而是運(yùn)行時計算。通常volatile類型的attribute也是non changeable的,因?yàn)関olitale類型的attribute通常都是通過計算得到,提供setter方法沒有 意義,所以在設(shè)置volatile為true的時候不要忘了把changeable也設(shè)置為false
★non-changeable attribute 默認(rèn)情況下attribute都是changeable,non-changeable的attribute將不提供setter方法,而對于multi-value attribute屬性來說,屬性值的內(nèi)容改變可以通過相應(yīng)的容器接口來做到,因此setter方法對于multi-value attribute是不會生成的,non-changeable因此對該類屬性也是沒有意義的
★unsettable attribute 有時候我們希望某個屬性處于未設(shè)置值的狀態(tài),這種狀態(tài)跟初始化設(shè)置的默認(rèn)值不同(默認(rèn)情況下,我們會認(rèn)為屬性未設(shè)置和屬性為默認(rèn)值兩種狀態(tài)是一樣的),當(dāng)unsettable為ture時,emf generator會追蹤指定attribute的設(shè)置狀態(tài),是未設(shè)置,還是已被設(shè)置,同時還提供了unsetXxxx()方法來將attribute恢復(fù)到未設(shè)置狀態(tài)。對于multi-valued attribute則將unsettable相關(guān)的工作交給InternalEList.Unsettable處理,使用unsettable所帶來的一個后果就是因?yàn)樾枰鄳?yīng)的屬性來保留狀態(tài),因此生成的類會比較大。

安徽新華電腦學(xué)校專業(yè)職業(yè)規(guī)劃師為你提供更多幫助【在線咨詢
主站蜘蛛池模板: 亚洲国产精久久久久久久 | 久草视频资源在线观看 | 欧美手机看片 | 夜夜夜夜操 | 日本三级韩国三级香港三级在 | 日毛片| 欧美国产综合在线 | 国内偷自第一二三区 | 日本一区二区三区在线 观看网站 | 青娱乐免费视频在线观看 | 青青青在线免费 | 欧美人人草 | 国产免费黄色 | 97精品国产| 日本久久中文字幕精品 | 色综合天 | 欧美 日本 国产 | 日本一区二区三区不卡在线看 | 亚洲天堂精品在线观看 | 精品亚洲午夜久久久久 | 国产中文99视频在线观看 | 日韩手机在线视频 | 天天碰夜夜操 | 中文字幕精品1在线 | 国产精品亚洲欧美日韩区 | 兔费看全黄三级 | 国产成人精品高清在线观看99 | 国产aa大片 | 韩国高清色www在线安全 | 美女久久久久久 | 人碰人人 | 人人人人看人人人做人人 | 理论片久久 | 麻豆视频免费网站 | 午夜手机福利 | 亚洲精品成人a | 激情网站网址 | 久久热在 | 国产九九热 | 久久伊人在 | 欧美综合自拍亚洲综合百度 |