freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

drools使用手冊第三章(更新版)

2026-01-09 04:41上一頁面

下一頁面
  

【正文】 例 . Some examples as processed There is a Person with name of kitty Person(name=kitty) Person is at least 42 years old and lives in atlanta Person(age 42, location=atlanta) Log boo (boo)。 [譯者注:這里的內(nèi)容直譯不易理解,最好參看后面的例子 理解; ] 作為一個慣例,對文本數(shù)據(jù)使用引號是規(guī)則編輯器所默認的。 分解器將獲得你指定的表達式,然后取出輸入中的 {something}(稱為 Tokens)值進行匹配。 DSL 不關(guān)注規(guī)則的運行時,它們僅僅是分解和編譯時需 要的特性。 Person person = ( Person ) ( person )。 例 . Query People over the age of 30 query people over the age of 30 person : Person( age 30 ) end 通過在返回的查詢結(jié)果 (QueryResults)上進行標準的 for 循環(huán)遍歷,每一行將返回一個 QueryResult,該對象可以用來存取組元中的每一個 Column。另一個要注意的是返回值約束,返回值片斷必須返回一個對象而不是原型。 end . 對原型數(shù)據(jù)自動封箱的提醒 Java 5 支持對原型進行類型適當?shù)淖詣臃庀浜筒鹣?。如果只是要?Column,則意味著對每一個符 合的 Column。當前只有 Column 可以在 not 中嵌套,以后將可以支持 and 和 or 進行嵌套(已在 中實現(xiàn))。但是當函數(shù)的返回值不斷改變時(這樣的函數(shù)不能用在值約束中),使用 eval 非常合適。如果你這樣想,很明顯對于一個規(guī)則能有多個行為,如果 Or 條件元素的兩邊都滿足的話。 圖 . and 有效的子條件元素 (用括號進行組合 ): and, or, not, exists, column 例 . Column Cheese( cheeseType : type ) amp。 例 . Return Value operator Person( girlAge : age, sex == F ) Person( age == ( new Integer(() + 2) ), sex == 39。M39。 例 . Bound Fact using 39。聲明不能被用來 進行匹配 (matchs)操作,雖然它與約束一起工作。 例 . 正則表達式約束 Cheese( type matches (Buffulo)?\\S*Mozerella ) Contains Operator 包含操作 39。 Null 注意:你可以使用 ==和 !=將字段與 null 關(guān)鍵字進行比較,象Cheese(type!=null)。 . JavaBeans as facts 作為 facts 的 javabean JavaBeans 注意: JavaBean 約定被遵循,但是從上面所示,你可以使用非 getter方法,而通過使用其它方法的全名 。 示例,查閱前面的 Cheese 類,這個: Cheese( type==?)使用了實例的 getType()方法。 圖 . Column 例 . Bound Column cheapStilton : Cheese( type == stilton, price 10 ) 這個與前面例子類似,但是在這里我們將一個變量綁定到規(guī)則引擎匹配到的Chesse 實例上。Activationgroup 屬性可以是任何字符,只要所有你需要放在同一個組中的規(guī)則中的 activationgroup 屬性是相同的即可。設(shè)置 noloop 為 true 可以阻止該規(guī)則被再次激活。將你建立的新對象放到 working memory 中。規(guī)則不能進行嵌套。在規(guī)則的推論中調(diào)用一個函數(shù),簡單的使用函數(shù)名稱,并且傳入?yún)?shù)即可,就像方法調(diào)用一樣。 . Function 函數(shù) 圖 . function 相對于正常的 java 類,函數(shù)是在你的規(guī)則代碼中放置語言代 碼的方法。 Global 不會設(shè)置到 Working Memory中,因此當全局變量發(fā)生改變時,引擎不會得知;因為這個原因,全局變量不能用在條件約束上,除非這個值不會發(fā)生改變。 . no spaces, unlike rule names which allow spaces. In terms of the order of elements, they can appear in any order in the rule file, with the exception of the package and expander statements being at the top of the file, before any rules appear. In all cases, the semi colons are optional. 圖 . package . import 導入 圖 . import Import 標記就像 java 中的含義一樣。包名也就是名稱空間名,與文件或目錄名稱無關(guān)。避免在你的領(lǐng)域?qū)ο?,屬性,方法,函?shù)以及規(guī)則的其它部分中使用保留字是明智的。你可以認為這些 dsl 文件也是對你的域模型的映射(它為你提供了一點的隔絕性)。 LHS 是規(guī)則的條件部分,它遵循下面將提到的語法。對該技術(shù)非常有興趣的話,你可以查閱“ ” ,那是 Antlr3 為規(guī)則語言提供的語法分析。其中所用的圖稱為線路圖,是對語言中術(shù)語解釋的基本流圖表。 ATTRIBUTES(通常是可選項)指出規(guī)則的行為表現(xiàn)。這個擴展機制是一個可擴展的 API,但是它默認與 dsl擴展名的文件工作,dsl 文件中包含了如何將域語言或自然語言映射為規(guī)則語言以及域?qū)ο蟆? . Reserved words 在規(guī)則語言中使用了一些保留字。一個包通過名稱空間描繪,這樣很好的保持了一組規(guī)則的獨立性。 The following rail road diagram shows all the ponents that may make up a package. Note that a package MUST have a namespace and be declared using standard java conventions for package names。全部變量通常用來返回數(shù)據(jù),如一個動作的記錄,獲得提供數(shù)據(jù)或服務(wù)給規(guī)則使用。然后在規(guī)則的推論中,你就可以使用類似 (number,message)這樣的調(diào)用。返回值的概念也和普通方法相同。規(guī)則使用 end 關(guān)鍵字 結(jié)尾。將要通知引擎一個對象發(fā)生了改變(在 LHS 中綁定的對象),規(guī)則需要重新檢查 assert(new Something())。 . Rule Attriutes 規(guī)則屬性 圖 . rule attributes . noloop 無循環(huán) 默認值 : false 類型 : Boolean 當規(guī)則在推論中對 fact 進行修改后,可能會導致該規(guī)則的重新激活,引起遞歸。這個意思時在這個組中第一條被激發(fā)的規(guī)則將取消其它規(guī)則的激發(fā),即使它們已經(jīng)在激發(fā)隊列中。第二個例子引用兩 個字段約束,它們使用逗號分開,這意味著‘ and’。你可以使用 bean 名稱約定讀取 fields,因此 getType 可以使用 type 來訪問。 注:在 版本中可直接使用原類型,不再需要封箱和拆箱支持。 . Literal Constraints 值約束 最基本的字段約束是值約束,這可以要求字段必須與給定值匹配。 有效操作 : ? true ? false 例 . Boolean Literal Constraint Cheese( smelly == true ) Matches 匹配操作 任何有效的 Java 正則表達式可以用來對字符串字段進行匹配。綁定的變量被稱為聲明。下面的例子顯示了綁定到 Cheese 對象實例的變量 $stilton 被用來對 Cheesery 對象進行約束。 例 . Return Value operator Person( girlAge : age, sex = F ) Person( boyAge : age ( () == () + 2 ), sex = 39。注意在這里我們不需要綁定 boyAge,這樣看起來容易閱讀一些。and39。 OR的最好的使用方式是作為產(chǎn)生兩個額外規(guī)則的捷徑。 Eval 不能被索引,這不是使用值約束的最佳方式。是一階邏輯的存在判斷量詞,檢查在 Working Memory 中某些 Fact 的存在性。它不同于只檢查 Column 自身的清況。 (true)。 作為一個約定,如果可能的話將你的 fields 換成對象類型(至少直到 java5),或者最少將你的 fields 想象為對象類型,即使它們開始不是。 下例為所有 30 歲以上的人建立了一個簡單的查詢。 ) { QueryResult result = ( QueryResult ) ()。如果你的規(guī)則的條件或推論遵循相似的模式,可以用模板的方式表達;當你希望隱藏實現(xiàn)的細節(jié),而將焦點放在商業(yè)規(guī)則上時;或者你希望通過提供預(yù)定義的模版來控制規(guī)則的修改;這些都適合使用 DSL。在‘ =’符號右邊的部分是將要映射到的規(guī)則語言(當然這個結(jié)構(gòu)依賴于你要用在LHS 還是 RHS上,如果是 LHS,則它是 LSH 的語法,如果是 RHS,則它是 java 代碼的片斷)。注意圍繞的字符(雙引號)在進行內(nèi)部替代時不會被包含進 去,只有中間的內(nèi)容被使用(而隨后到行尾的內(nèi)容,將被視為 Case 中的其它情況)。 例 . Some more examples This is a ment to be ignored. [when]There is a Person with name of {name}=Person(name=={name}) [when]Person is at least {age} years old and lives in {location}=Person(age {age}, location=={location}) [then]Log {message}=({message})。這使得事情變得非常流暢。你也可以獲得跨行的規(guī)則表達式,這意味著你可以如下例所示: Example . There is a person called Bob who is happy Or There is a person called Mike who is sad 當然這里假設(shè)“ Or”被映射為“ or”條件元素。我們可以在普通的 DRL 的 LHS 條件中向下面這樣表達: Cheese(age 5, price == 20, type==stilton, country==ch) 如果你之前確認你在任何時候都需要用到上面所有的屬性,那很容易使用 DSL對上面的規(guī)則 LHS 進行編碼。=country==39。)。這個匹配 token 占位符的值或者通過搜索直到行尾,或者在 token 占位符后面的字符被匹配。在任何情況下,規(guī)則可以很好的與扁平對象模型一起工作。也同時尋找規(guī)則對象 /字段(將它們匹配到已經(jīng)知道的對象模型)。并重復(fù)這個過程。 . 何時使用 XML 有幾種情況下, XML 是合適的。 . XML格式 一個完整的用語取代 XSD 的 WSC標準( XMLSchema)已經(jīng)提供,它也使用 XML 語言進行描述,在這里不再重復(fù)說明該規(guī)范。在 Column 對象下嵌套的是必須符合的約束。在代碼片斷中可以包含函數(shù)調(diào)用。這可以通過一個表格來完成。 eval(Goodbye)/eval /lhs rhs goodbyeWorld( goodbye
點擊復(fù)制文檔內(nèi)容
教學課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1