📄 insurancefactor.drl
字号:
package org.acme.insuranceimport org.acme.insurance.base.Rejection;import org.acme.insurance.base.Policy;import org.acme.insurance.base.Driver;import org.acme.insurance.base.DriverAdditionalInfo;import org.acme.insurance.base.AccessoriesCoverage;import org.acme.insurance.base.SupplementalInfo;rule "Driver is underage" ruleflow-group "risk assessment" when not Rejection() $driver : Driver ( age < 18) then $driver.updateInsuranceFactor(0.0); insert(new Rejection("Driver is Underage")); System.out.println("Driver is Underage");endrule "New licenced Driver" ruleflow-group "risk assessment" when $driver : Driver ( licenceYears < 3 ) then $driver.updateInsuranceFactor(1.2); System.out.println("New Licenced driver " + $driver.getInsuranceFactor()); endrule "Driver Single Young Male Driver factor" ruleflow-group "risk assessment" when $driver : Driver( genre == Driver.MALE, age < 25, maritalState == Driver.SINGLE ) then $driver.updateInsuranceFactor(1.6); System.out.println("Driver Single Young Male Driver factor: " + $driver.getInsuranceFactor());endrule "Driver Mature Married With Young Child factor" ruleflow-group "risk assessment" when $driver : Driver( genre == Driver.MALE, age > 40, maritalState == Driver.MARRIED, hasChildren == true ) then $driver.updateInsuranceFactor(1.5); System.out.println("Driver Mature Married With Young Child factor: " + $driver.getInsuranceFactor());endrule "Priory Claimed Driver" ruleflow-group "risk assessment" when $driver : Driver ( $prior : priorClaims > 2 ) then $driver.updateInsuranceFactor((0.2 * $prior) + 1); System.out.println("Priory Claimed Driver + 20% for each previous problem " + $driver.getInsuranceFactor()); endrule "Day Vehicle Place" ruleflow-group "risk assessment" when $driver : Driver ( driverID : id ) $daddit : DriverAdditionalInfo ( driverId == driverID, dayVehiclePlace == DriverAdditionalInfo.STREET ) then $driver.updateInsuranceFactor( 1.15 ); System.out.println("Day Vehicle Place: " + $driver.getInsuranceFactor()); endrule "Night Vehicle Place" ruleflow-group "risk assessment" when $driver : Driver ( driverID : id ) $daddit : DriverAdditionalInfo ( driverId == driverID, nightVehiclePlace == DriverAdditionalInfo.STREET ) then $driver.updateInsuranceFactor(1.44); // streets are very dangerous dangerous at night ;) System.out.println("Night Vehicle Place: " + $driver.getInsuranceFactor()); end// Supplemental itens insurance rule "Driver wants an extra Car" ruleflow-group "risk assessment" when $driver : Driver ( driverID : id ) $supple : SupplementalInfo ( driverId == driverID, extraCar == true) then $driver.updateInsuranceFactor( 1.05 ); System.out.println("Driver wants an extra Car: " + $driver.getInsuranceFactor()); endrule "Driver wants extra assistence" ruleflow-group "risk assessment" when $driver : Driver ( driverID : id ) $supple : SupplementalInfo ( driverId == driverID, extraAssistence == true) then $driver.updateInsuranceFactor( 1.05 ); System.out.println("Driver wants extra assistence: " + $driver.getInsuranceFactor()); endrule "Driver wants glass coverage" ruleflow-group "risk assessment" when $driver : Driver ( driverID : id ) $supple : SupplementalInfo ( driverId == driverID, glassCoverage == true) then $driver.updateInsuranceFactor( 1.05 ); System.out.println("Driver wants glass coverage: " + $driver.getInsuranceFactor()); endrule "Driver wants non related expenses coverage" ruleflow-group "risk assessment" when $driver : Driver ( driverID : id ) $supple : SupplementalInfo ( driverId == driverID, nonRelatedExpenses == true) then $driver.updateInsuranceFactor( 1.05 ); System.out.println("Driver wants non related expenses coverage: " + $driver.getInsuranceFactor()); end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -