AleksaLjujic

IS ES Kod

Jul 26th, 2025
1,020
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.15 KB | None | 0 0
  1. //Drools file
  2.  
  3. package com.sample;
  4.  
  5. import org.kie.api.KieServices;
  6. import org.kie.api.runtime.KieContainer;
  7. import org.kie.api.runtime.KieSession;
  8.  
  9. /**
  10.  * This is a sample class to launch a rule.
  11.  */
  12. public class DroolsTest {
  13.  
  14.     public static final void main(String[] args) {
  15.         try {
  16.             // load up the knowledge base
  17.             KieServices ks = KieServices.Factory.get();
  18.             KieContainer kContainer = ks.getKieClasspathContainer();
  19.             KieSession kSession = kContainer.newKieSession("ksession-rules");
  20.  
  21.             // Kreiranje novog objekta i unos cinjenica
  22.             KlimaUredjaj k = new KlimaUredjaj();
  23.             k.setKvadratura(62);
  24.             k.setBrojProstorija("vise");
  25.             k.setRadNaNiskimTemperaturama(true);
  26.             k.setMogucaUgradnjaNaZid(false);
  27.            
  28.             //Unosenje objekta u ES
  29.             kSession.insert(k);
  30.            
  31.             //Pokretanje ES
  32.             kSession.fireAllRules();
  33.            
  34.             //Ispis resenja
  35.             System.out.println(k);
  36.         } catch (Throwable t) {
  37.             t.printStackTrace();
  38.         }
  39.     }
  40.  
  41. }
  42.  
  43. _________________________________________________________________________________________________________________________
  44.  
  45. //Klasa koja se pravi u skladu sa zadatkom
  46.  
  47. package com.sample;
  48.  
  49. public class KlimaUredjaj {
  50.    
  51.     //Pravila 9 i 10 navode da je preporuceni tip "zidna" klima, osim u
  52.     //nekim slucajevima pa se to postavlja za pocetnu vrednost atributa tip
  53.     private String tip = "zidna";
  54.     private int snaga;
  55.     private boolean imaInverter;
  56.    
  57.     private int kvadratura;
  58.     private String brojProstorija;
  59.     private boolean mogucaUgradnjaNaZid;
  60.     private boolean podjednakoZaGrejanje;
  61.     private boolean radNaNiskimTemperaturama;
  62.    
  63.     public String getTip() {
  64.         return tip;
  65.     }
  66.    
  67.     public void setTip(String tip) {
  68.         this.tip = tip;
  69.     }
  70.    
  71.     public int getSnaga() {
  72.         return snaga;
  73.     }
  74.    
  75.     public void setSnaga(int snaga) {
  76.         this.snaga = snaga;
  77.     }
  78.    
  79.     public boolean isImaInverter() {
  80.         return imaInverter;
  81.     }
  82.    
  83.     public void setImaInverter(boolean imaInverter) {
  84.         this.imaInverter = imaInverter;
  85.     }
  86.    
  87.     public int getKvadratura() {
  88.         return kvadratura;
  89.     }
  90.    
  91.     public void setKvadratura(int kvadratura) {
  92.         this.kvadratura = kvadratura;
  93.     }
  94.    
  95.     public String getBrojProstorija() {
  96.         return brojProstorija;
  97.     }
  98.    
  99.     public void setBrojProstorija(String brojProstorija) {
  100.         this.brojProstorija = brojProstorija;
  101.     }
  102.    
  103.     public boolean isMogucaUgradnjaNaZid() {
  104.         return mogucaUgradnjaNaZid;
  105.     }
  106.    
  107.     public void setMogucaUgradnjaNaZid(boolean mogucaUgradnjaNaZid) {
  108.         this.mogucaUgradnjaNaZid = mogucaUgradnjaNaZid;
  109.     }
  110.    
  111.     public boolean isPodjednakoZaGrejanje() {
  112.         return podjednakoZaGrejanje;
  113.     }
  114.    
  115.     public void setPodjednakoZaGrejanje(boolean podjednakoZaGrejanje) {
  116.         this.podjednakoZaGrejanje = podjednakoZaGrejanje;
  117.     }
  118.    
  119.     public boolean isRadNaNiskimTemperaturama() {
  120.         return radNaNiskimTemperaturama;
  121.     }
  122.    
  123.     public void setRadNaNiskimTemperaturama(boolean radNaNiskimTemperaturama) {
  124.         this.radNaNiskimTemperaturama = radNaNiskimTemperaturama;
  125.     }
  126.  
  127.     //Trazi se samo ispis resenja a ne i ulaznih cinjenica, tako da toString vraca
  128.     //tip, snagu i da li ima inverter
  129.     @Override
  130.     public String toString() {
  131.         return "KlimaUredjaj [tip=" + tip + ", snaga=" + snaga + ", imaInverter=" + imaInverter + "]";
  132.     }
  133.    
  134.    
  135.  
  136. }
  137.  
  138. __________________________________________________________________________________________________________\
  139.  
  140. //RULES
  141.  
  142. package com.sample
  143.  
  144. import com.sample.KlimaUredjaj;
  145.  
  146. rule "Pravilo 4"
  147.     when
  148.         k : KlimaUredjaj( kvadratura <= 50 && brojProstorija == "jedna" && snaga == 0 )
  149.     then
  150.         k.setSnaga(9000);
  151.         update( k );
  152. end
  153.  
  154. rule "Pravilo 5"
  155.     when
  156.         k : KlimaUredjaj( kvadratura <= 50 && brojProstorija == "vise" && snaga == 0 )
  157.     then
  158.         k.setSnaga(12000);
  159.         update( k );
  160. end
  161.  
  162. rule "Pravilo 6"
  163.     when
  164.         k : KlimaUredjaj( kvadratura > 50 && kvadratura < 75 && brojProstorija == "jedna" && snaga == 0 )
  165.     then
  166.         k.setSnaga(12000);
  167.         update( k );
  168. end
  169.  
  170. rule "Pravilo 7"
  171.     when
  172.         k : KlimaUredjaj( kvadratura > 50 && kvadratura < 75 && brojProstorija == "vise" && snaga == 0 )
  173.     then
  174.         k.setSnaga(18000);
  175.         update( k );
  176. end
  177.  
  178. rule "Pravilo 8"
  179.     when
  180.         k : KlimaUredjaj( kvadratura >= 75 && snaga == 0 )
  181.     then
  182.         k.setSnaga(18000);
  183.         update( k );
  184. end
  185.  
  186. rule "Pravilo 9"
  187.     when
  188.         k : KlimaUredjaj( brojProstorija == "vise" && mogucaUgradnjaNaZid == false && tip == "zidna" )
  189.     then
  190.         k.setTip("pokretna");
  191.         update( k );
  192. end
  193.  
  194. rule "Pravilo 10"
  195.     when
  196.         k : KlimaUredjaj( brojProstorija == "jedna" && mogucaUgradnjaNaZid == false && tip == "zidna" )
  197.     then
  198.         k.setTip("prozorska");
  199.         update( k );
  200. end
  201.  
  202. rule "Pravilo 11"
  203.     when
  204.         k : KlimaUredjaj( podjednakoZaGrejanje == true && imaInverter == false )
  205.     then
  206.         k.setImaInverter(true);
  207.         update( k );
  208. end
  209.  
  210. rule "Pravilo 12"
  211.     when
  212.         k : KlimaUredjaj( radNaNiskimTemperaturama == true && imaInverter == false )
  213.     then
  214.         k.setImaInverter(true);
  215.         update( k );
  216. end
Advertisement
Add Comment
Please, Sign In to add comment