gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
Hash, pomereni materijali vezani za OHashSet
[spa2-materijali.git] / Hash / OHashSet / Kancelarija.java
diff --git a/Hash/OHashSet/Kancelarija.java b/Hash/OHashSet/Kancelarija.java
new file mode 100644 (file)
index 0000000..655a1cc
--- /dev/null
@@ -0,0 +1,89 @@
+import java.util.Objects;
+
+import org.svetovid.io.SvetovidReader;
+
+/**
+ * Koriscenje kancelarija
+ * 
+ * Prosiruje InfoTip samo zbog jednostavnosti u TestHash, nema razloga inace.
+ */
+public class Kancelarija extends InfoTip {
+       private String prezime;
+       private int broj;
+
+       public Kancelarija(String prezime, int broj) {
+               this.prezime = prezime;
+               this.broj = broj;
+       }
+
+       public Kancelarija() {
+       };
+
+       public boolean equals(Object o) {
+               // Objekat je identican
+               if (this == o) {
+                       return true;
+               }
+               // Null je uvek razlicit
+               if (o == null) {
+                       return false;
+               }
+               // Ako su klase razlicite, objekti ne mogu bili jednaki
+               if (getClass() != o.getClass()) {
+                       return false;
+               }
+
+               // pretvaramo objekat u kancelariju
+               Kancelarija k2 = (Kancelarija) o;
+
+               // Prvo proveravamo broj
+               if (broj != k2.broj) {
+                       return false;
+               }
+
+               // A potom prezime
+               if (!Objects.equals(prezime, k2.prezime)) {
+                       return false;
+               }
+
+               // Proverili smo polja i sva su jednaka
+               return true;
+       }
+
+       public int hashCode() {
+               int rez = 1;
+               if (prezime != null) {
+                       rez *= prezime.hashCode();
+               }
+               rez *= broj;
+               return rez;
+       }
+
+       @Override
+       public InfoTip ucitaj(SvetovidReader r) {
+               String prez = r.readToken(); // citamo jednu "rec"
+               int br = r.readInt();
+               InfoTip rez = new Kancelarija(prez, br);
+               return rez;
+       }
+
+       // pomocni metod za lakse testiranje
+       public static void main(String[] args) {
+               new TestHash(new Kancelarija(), "kancelarije").run();
+       }
+       
+       // ovaj konstruktor nije neophodan, ostavljen je kao primer
+       public Kancelarija(String line) {
+               String[] delovi = line.trim().split(" ");
+               if (delovi.length == 2) {
+                       try {
+                               prezime = delovi[0];
+                               broj = Integer.parseInt(delovi[1]);
+                       } catch (Exception ex) {
+                               throw new RuntimeException(ex);
+                       }
+               } else
+                       throw new RuntimeException("Pogresan broj argumenata u redu");
+       }
+
+}
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner