国产一区二区精品久久_蜜桃狠狠狠狠狠狠狠狠狠_午夜视频精品_激情都市一区二区

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

EMF開發(fā)指南之屬性詳解
2010-01-14 22:43:13  作者:  來源:
★changeable:boolean值,指定屬性值是否可設(shè)置
★transient:boolean值,指定屬性值在序列化的時(shí)候是否可被忽略
★unique:boolean值,該屬性在multipilicity-many(不知道怎么翻譯)的情況下才有意義,它用來表示一個(gè)值在同類型對(duì)象實(shí)例中是否只存在一個(gè)相同的值   
★unsettable:當(dāng)設(shè)置了該屬性的時(shí)候,我們還需要使用另外一個(gè)屬性值,即unset,該屬性就是用來告訴emf,我們是否需要使用unset這個(gè)屬性。
★volatile:boolean值,表明該屬性值是否直接進(jìn)行存儲(chǔ),這種情況一般發(fā)生在當(dāng)前屬性值是由其他屬性計(jì)算而來的時(shí)候,此時(shí)該屬性的set方法可能需要我們自己實(shí)現(xiàn),而不是由emf generator生成的。
★還有幾個(gè)與數(shù)量相關(guān)的屬性:lowerbound,最小值,只能是0和正整數(shù),upperbound,最小值,大于或等于最小值,如果是unbounded的話(極大值),可以設(shè)置為-1(相當(dāng)于模型中的*)
★structrual feature的默認(rèn)值:booelan類型的為false, integer的為0
★雖然采用不同的模型工具也可以生成emf model,但是總是會(huì)存在這樣和那樣的問題,比如有的雖然能建模總是和emf,gef,eclipse的版本相關(guān),不同的版本會(huì)出現(xiàn)一些莫名其妙的問題最終讓你死的很慘(我在這個(gè)上面花了太多的時(shí)間,推薦eclipse3.2.1+emf2.2.1,最新的會(huì)有問題),而使用annotated java interface則會(huì)消除這些問題,所謂強(qiáng)烈推薦采用annotation的方式生成emf model,不過它唯一比較麻煩的就是,你必須熟練掌握各種annoation的用法。
★一般情況下,我們不需要針對(duì)package來定義接口,除非我們需要對(duì)EPackage的一些屬性進(jìn)行復(fù)寫(有幾個(gè)final的屬性eName,eNS_URI,eNS_Perffix),但是在下面兩種情況下,我們也需要進(jìn)行自定義:如果需要顯示定義EDataType以及顯示定義一個(gè)map entity。
★class的接口定義,就是一般的接口定義加上@model annotation,attribute和reference的定義通過在get()方法上指定相應(yīng)的annotation,operation則使用其他的方法定義。
★class的model屬性主要包括abstract和interface,用來指明定義的class是否是抽象類和接口,都是boolean值
★class中的attribute的設(shè)置,只有符合以下條件下才能被emf generator識(shí)別為一個(gè)attribute:必須帶有一個(gè)@model的annotation,且跟隨后面的屬性不能帶有parameters屬性;方法名必須以get或者is開頭,緊隨其后的必須為大寫字母開頭的屬性名;還有一點(diǎn)就是方法返回的類型不能和EClass相關(guān)(如果返回類型是List或EList,那么里面的類型必須通過@model之后的type屬性加以指定,否則,EAttribute的eType要設(shè)置為對(duì)應(yīng)的EDataType類型)
★class中的reference的設(shè)置,只有符合以下條件才能被emf generator識(shí)別為一個(gè)reference:必須帶有@model的annotation,且跟隨后面的屬性中不能帶有parameters屬性;方法名必須以get開頭,緊隨其后的必須為大寫字母開頭的屬性名;返回的類型必須和EClass相關(guān)
★class中的operation的設(shè)置,只有符合以下條件才能被emf generator識(shí)別為一個(gè)operation:必須帶有@model的annotation;@model帶有一個(gè)parameters屬性,如果方法名的定義不符合attribute和reference的方法名定義可不用帶parameters屬性,但是如果參數(shù)類型必須使用指定的EDataType,則必須帶paramters加以指定。
★枚舉值的定義,在class的定義中,每一個(gè)int值的定義,如果使用了@model annotation,那么將被emf generator解析成一個(gè)枚舉值,如果你不希望使用emf 生成的枚舉名稱(通常就是定義的那個(gè)屬性名),可以通過@model后面的name屬性加以指定
★自定義類型的定義,一般情況下,我們無須顯式的自定義Data Type,emf會(huì)根據(jù)attribute和operation中用到的數(shù)據(jù)類型在EPackage中添加相關(guān)的自定義Data Type類型。有時(shí)候?yàn)榱私o一種類型提供指定的序列化處理方式,需要自己寫Data Type,為了自定義一個(gè)Data Type,具體步驟如下:方法名已get打頭;在方法注釋中添加@model;getter方法返回類型為Data Type;注釋的屬性中包含instanceClass用來指定實(shí)際的java class 或者interface,還有一個(gè)屬性是serializable。
★用戶描述core model結(jié)構(gòu)的元數(shù)據(jù)模型(metamodel)稱之為Ecore,同時(shí)我們又用它來描述實(shí)際應(yīng)用中的數(shù)據(jù)模型,因此Ecore又被稱之為應(yīng)用元數(shù)據(jù)模型的元數(shù)據(jù)模型(meta-metamodel)

安徽新華電腦學(xué)校專業(yè)職業(yè)規(guī)劃師為你提供更多幫助【在線咨詢