Advertisement
Guest User

Untitled

a guest
Apr 25th, 2015
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.16 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.HashMap;
  3. import java.util.HashSet;
  4.  
  5. public class Zmienna {
  6.     public String nazwa;
  7.     public String wartosc;
  8.     public ArrayList<String> dziedzina;
  9.     public ArrayList<Ograniczenie> ograniczenia;
  10.     public HashSet<String> powiazane;
  11.  
  12.     public Zmienna(String nazwa) {
  13.         this.nazwa = nazwa;
  14.         ograniczenia = new ArrayList<Ograniczenie>();
  15.         this.powiazane = new HashSet<String>();
  16.         this.dziedzina = new ArrayList<String>();
  17.     }
  18.  
  19.     public Zmienna deepCopy() {
  20.         Zmienna tmp = new Zmienna(new String(this.nazwa));
  21.         if (this.wartosc == null) {
  22.             tmp.wartosc = null;
  23.         } else {
  24.             tmp.wartosc = new String(wartosc);
  25.         }
  26.         tmp.dziedzina = new ArrayList<String>(this.dziedzina);
  27.         tmp.ograniczenia = new ArrayList<Ograniczenie>(this.ograniczenia);
  28.         tmp.powiazane = new HashSet<String>(this.powiazane);
  29.         return tmp;
  30.     }
  31.  
  32.     public void ustawWartosc(int id) {
  33.         if (id > 0 || id < dziedzina.size()) {
  34.             this.wartosc = dziedzina.get(id);
  35.         } else
  36.             this.wartosc = null;
  37.     }
  38.  
  39.     public void dodajDoOgraniczen(Ograniczenie o,
  40.             HashMap<String, Zmienna> zmienne) {
  41.         ograniczenia.add(o);
  42.         for (int i = 0; i < o.operatory.length; i++) {
  43.             if ((o.operatory[i].compareTo(this.nazwa))>0
  44.                     && (zmienne.containsKey(o.operatory[i]))) {
  45.                 powiazane.add(o.operatory[i]);
  46.             }
  47.         }
  48.     }
  49.  
  50.     public void dodajDoDziedziny(String element) {
  51.         String[] dziedzina_tmp = element.split(" ");
  52.         for (int i = 0; i < dziedzina_tmp.length; i++) {
  53.             dziedzina.add(dziedzina_tmp[i]);
  54.         }
  55.     }
  56.  
  57.     public boolean aktualizujDziedzine(HashMap<String, Zmienna> zmienne) {
  58.         if (wartosc == null) {
  59.             ArrayList<String> dziedzina_tmp = new ArrayList<String>();
  60.             for (int i = 0; i < dziedzina.size(); i++) {
  61.                 this.ustawWartosc(i);
  62.                 if (sprawdzOgraniczenia(zmienne)) {
  63.                     dziedzina_tmp.add(wartosc);
  64.                 }
  65.             }
  66.             dziedzina = dziedzina_tmp;
  67.             wartosc = null;
  68.             return dziedzina.size() > 0;
  69.         } else
  70.             return true;
  71.     }
  72.  
  73.     public boolean sprawdzOgraniczenia(HashMap<String, Zmienna> zmienne) {
  74.         for (Ograniczenie o : ograniczenia) {
  75.             if (o.sprawdz_ograniczenie(zmienne) != true) {
  76.                 return false;
  77.             }
  78.         }
  79.         return true;
  80.     }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement