Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Drools file
- package com.sample;
- import org.kie.api.KieServices;
- import org.kie.api.runtime.KieContainer;
- import org.kie.api.runtime.KieSession;
- /**
- * This is a sample class to launch a rule.
- */
- public class DroolsTest {
- public static final void main(String[] args) {
- try {
- // load up the knowledge base
- KieServices ks = KieServices.Factory.get();
- KieContainer kContainer = ks.getKieClasspathContainer();
- KieSession kSession = kContainer.newKieSession("ksession-rules");
- // Kreiranje novog objekta i unos cinjenica
- KlimaUredjaj k = new KlimaUredjaj();
- k.setKvadratura(62);
- k.setBrojProstorija("vise");
- k.setRadNaNiskimTemperaturama(true);
- k.setMogucaUgradnjaNaZid(false);
- //Unosenje objekta u ES
- kSession.insert(k);
- //Pokretanje ES
- kSession.fireAllRules();
- //Ispis resenja
- System.out.println(k);
- } catch (Throwable t) {
- t.printStackTrace();
- }
- }
- }
- _________________________________________________________________________________________________________________________
- //Klasa koja se pravi u skladu sa zadatkom
- package com.sample;
- public class KlimaUredjaj {
- //Pravila 9 i 10 navode da je preporuceni tip "zidna" klima, osim u
- //nekim slucajevima pa se to postavlja za pocetnu vrednost atributa tip
- private String tip = "zidna";
- private int snaga;
- private boolean imaInverter;
- private int kvadratura;
- private String brojProstorija;
- private boolean mogucaUgradnjaNaZid;
- private boolean podjednakoZaGrejanje;
- private boolean radNaNiskimTemperaturama;
- public String getTip() {
- return tip;
- }
- public void setTip(String tip) {
- this.tip = tip;
- }
- public int getSnaga() {
- return snaga;
- }
- public void setSnaga(int snaga) {
- this.snaga = snaga;
- }
- public boolean isImaInverter() {
- return imaInverter;
- }
- public void setImaInverter(boolean imaInverter) {
- this.imaInverter = imaInverter;
- }
- public int getKvadratura() {
- return kvadratura;
- }
- public void setKvadratura(int kvadratura) {
- this.kvadratura = kvadratura;
- }
- public String getBrojProstorija() {
- return brojProstorija;
- }
- public void setBrojProstorija(String brojProstorija) {
- this.brojProstorija = brojProstorija;
- }
- public boolean isMogucaUgradnjaNaZid() {
- return mogucaUgradnjaNaZid;
- }
- public void setMogucaUgradnjaNaZid(boolean mogucaUgradnjaNaZid) {
- this.mogucaUgradnjaNaZid = mogucaUgradnjaNaZid;
- }
- public boolean isPodjednakoZaGrejanje() {
- return podjednakoZaGrejanje;
- }
- public void setPodjednakoZaGrejanje(boolean podjednakoZaGrejanje) {
- this.podjednakoZaGrejanje = podjednakoZaGrejanje;
- }
- public boolean isRadNaNiskimTemperaturama() {
- return radNaNiskimTemperaturama;
- }
- public void setRadNaNiskimTemperaturama(boolean radNaNiskimTemperaturama) {
- this.radNaNiskimTemperaturama = radNaNiskimTemperaturama;
- }
- //Trazi se samo ispis resenja a ne i ulaznih cinjenica, tako da toString vraca
- //tip, snagu i da li ima inverter
- @Override
- public String toString() {
- return "KlimaUredjaj [tip=" + tip + ", snaga=" + snaga + ", imaInverter=" + imaInverter + "]";
- }
- }
- __________________________________________________________________________________________________________\
- //RULES
- package com.sample
- import com.sample.KlimaUredjaj;
- rule "Pravilo 4"
- when
- k : KlimaUredjaj( kvadratura <= 50 && brojProstorija == "jedna" && snaga == 0 )
- then
- k.setSnaga(9000);
- update( k );
- end
- rule "Pravilo 5"
- when
- k : KlimaUredjaj( kvadratura <= 50 && brojProstorija == "vise" && snaga == 0 )
- then
- k.setSnaga(12000);
- update( k );
- end
- rule "Pravilo 6"
- when
- k : KlimaUredjaj( kvadratura > 50 && kvadratura < 75 && brojProstorija == "jedna" && snaga == 0 )
- then
- k.setSnaga(12000);
- update( k );
- end
- rule "Pravilo 7"
- when
- k : KlimaUredjaj( kvadratura > 50 && kvadratura < 75 && brojProstorija == "vise" && snaga == 0 )
- then
- k.setSnaga(18000);
- update( k );
- end
- rule "Pravilo 8"
- when
- k : KlimaUredjaj( kvadratura >= 75 && snaga == 0 )
- then
- k.setSnaga(18000);
- update( k );
- end
- rule "Pravilo 9"
- when
- k : KlimaUredjaj( brojProstorija == "vise" && mogucaUgradnjaNaZid == false && tip == "zidna" )
- then
- k.setTip("pokretna");
- update( k );
- end
- rule "Pravilo 10"
- when
- k : KlimaUredjaj( brojProstorija == "jedna" && mogucaUgradnjaNaZid == false && tip == "zidna" )
- then
- k.setTip("prozorska");
- update( k );
- end
- rule "Pravilo 11"
- when
- k : KlimaUredjaj( podjednakoZaGrejanje == true && imaInverter == false )
- then
- k.setImaInverter(true);
- update( k );
- end
- rule "Pravilo 12"
- when
- k : KlimaUredjaj( radNaNiskimTemperaturama == true && imaInverter == false )
- then
- k.setImaInverter(true);
- update( k );
- end
Advertisement
Add Comment
Please, Sign In to add comment