Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.HashSet;
- public class Zmienna {
- public String nazwa;
- public String wartosc;
- public ArrayList<String> dziedzina;
- public ArrayList<Ograniczenie> ograniczenia;
- public HashSet<String> powiazane;
- public Zmienna(String nazwa) {
- this.nazwa = nazwa;
- ograniczenia = new ArrayList<Ograniczenie>();
- this.powiazane = new HashSet<String>();
- this.dziedzina = new ArrayList<String>();
- }
- public Zmienna deepCopy() {
- Zmienna tmp = new Zmienna(new String(this.nazwa));
- if (this.wartosc == null) {
- tmp.wartosc = null;
- } else {
- tmp.wartosc = new String(wartosc);
- }
- tmp.dziedzina = new ArrayList<String>(this.dziedzina);
- tmp.ograniczenia = new ArrayList<Ograniczenie>(this.ograniczenia);
- tmp.powiazane = new HashSet<String>(this.powiazane);
- return tmp;
- }
- public void ustawWartosc(int id) {
- if (id > 0 || id < dziedzina.size()) {
- this.wartosc = dziedzina.get(id);
- } else
- this.wartosc = null;
- }
- public void dodajDoOgraniczen(Ograniczenie o,
- HashMap<String, Zmienna> zmienne) {
- ograniczenia.add(o);
- for (int i = 0; i < o.operatory.length; i++) {
- if ((o.operatory[i].compareTo(this.nazwa))>0
- && (zmienne.containsKey(o.operatory[i]))) {
- powiazane.add(o.operatory[i]);
- }
- }
- }
- public void dodajDoDziedziny(String element) {
- String[] dziedzina_tmp = element.split(" ");
- for (int i = 0; i < dziedzina_tmp.length; i++) {
- dziedzina.add(dziedzina_tmp[i]);
- }
- }
- public boolean aktualizujDziedzine(HashMap<String, Zmienna> zmienne) {
- if (wartosc == null) {
- ArrayList<String> dziedzina_tmp = new ArrayList<String>();
- for (int i = 0; i < dziedzina.size(); i++) {
- this.ustawWartosc(i);
- if (sprawdzOgraniczenia(zmienne)) {
- dziedzina_tmp.add(wartosc);
- }
- }
- dziedzina = dziedzina_tmp;
- wartosc = null;
- return dziedzina.size() > 0;
- } else
- return true;
- }
- public boolean sprawdzOgraniczenia(HashMap<String, Zmienna> zmienne) {
- for (Ograniczenie o : ograniczenia) {
- if (o.sprawdz_ograniczenie(zmienne) != true) {
- return false;
- }
- }
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement