鍍金池/ 教程/ Java/ Drools規(guī)則語法
Drools規(guī)則語法
Drools調(diào)試
Drools常用術語
創(chuàng)建Drools程序(入門)
Drools教程
Drools規(guī)則編寫
Drools Eclipse插件
Drools運行時
Drools簡單項目

Drools規(guī)則語法

正如你看到的.drl(規(guī)則文件)都有自己的語法,讓我們蓋這個章介紹規(guī)則語法的某些部分。

在規(guī)則中的條件

規(guī)則可以包含很多的條件和模式,如:

  • Account (balance == 200)
  • Customer (name == “Vivek”)

上述條件檢查帳戶余額是200或客戶名稱是 “Vivek”.

在規(guī)則中的變量

在Drools中的變量名稱以美元($)符號開始。

  • $account : Account( )
  • $account is the variable for Account() class

Drools可與所有本地Java類型,甚至枚舉工作。

在規(guī)則中的注釋

特殊字符,# 或 //,可用于標記單行注釋。

對于多行注釋,請使用以下格式:

/*
   Another line
   .........
   .........
*/

全局變量

全局變量分配給會話變量。它們可用于各種原因如下:

  • 對于輸入?yún)?shù)(可從會話定制會話。例如,常量值)。

  • 對于輸出參數(shù)(例如,報告,規(guī)則可以寫一些消息給全局報表變量)。

  • 切入點的服務,如日志記錄,這可以在規(guī)則中使用。

在規(guī)則中的函數(shù)

函數(shù)是一個方便的功能。它們可以在條件和后果使用。函數(shù)代表的替代工具/輔助類。例如,

function double calculateSquare (double value) {
   return value * value;
}

方言

方言指定任何代碼的表達是在條件或因此所使用的語法。它包括返回值,evals,內(nèi)聯(lián)evals,謂詞突性表達式,后果,并依此類推。默認值是Java。目前,Drools支持多了一個叫做方言MVEL。默認方言可以指定在包級別如下:

package org.mycompany.somePackage
dialect "mvel"

MVEL 方言

MVEL是基于Java的應用程序的表達式語言。它支持字段和方法/getter訪問。它是基于Java的語法。

突顯

突顯是規(guī)則語法的一個非常重要的特點。突顯使用的沖突解決策略,以決定哪些規(guī)則首先觸發(fā)。默認情況下,它是主要標準。

我們可以用突性來定義的擊發(fā)規(guī)則的順序。突顯有一個屬性,這需要一個返回數(shù)字類型為int(正數(shù)和負數(shù)是有效)的任何表達式。該值越高,就越有可能的規(guī)則將被拾起的沖突解決策略觸發(fā)。

salience ($account.balance * 5)

默認的顯著值是0分配顯著值只有一些規(guī)則時,我們應該記住這一點。

有很多的規(guī)則語法等特性/參數(shù),但我們只涵蓋了重要的位置。

規(guī)則后果關鍵詞

規(guī)則后果關鍵字是規(guī)則“then”的一部分使用的關鍵字。

  • Modify – fact屬性可在隨后部分的規(guī)則進行修改。

  • Insert – 基于一些條件,如果true,可以插入一個新的事實到規(guī)則引擎會話。

  • Retract – 如果一個特定的條件是一個true的規(guī)則,則不采取其他任何就事實,可以從規(guī)則引擎收回特定事實。

注意:它被認為是一個非常不好的做法,有一個條件邏輯(if語句)規(guī)則的后果之內(nèi)。大多數(shù)時候,一個新的規(guī)則應該被創(chuàng)建。


上一篇:Drools運行時下一篇:Drools調(diào)試