/** class leitud urlide kontrollimiseks, hoidmiseks ja tootlemiseks * @author Diana Koshkina M21 * @author Artur Ra"pp M21 * @author Pilve Traks M21 * detsember 1999 a. */ import java.net.*; import java.io.*; import java.util.*; /* * p Kontroll() * p Kontroll(SortedSet u_sr1, Set u_sr2, Vector u_ser, Vector u_koik) * p Kontroll(String url) * p boolean add(String url, int nr) * p void add(Analyys[] a, String url, String[] prot) * p String[] serveriks(String sisend) throws MalformedURLException * p void lisa(String fail, int nr) * p void lisanda(Analyys a) * p void vaertusta(int koht, Analyys a, String serv) * p void sisesta(int nr, String sisend) * p static String addr(String[] sisend) * p boolean[] leitudSonad(Analyys[] a) * p static boolean true_false(boolean bool, boolean sisend) * p void vahetulem(String sisend)throws IOException * p static boolean vastab(String sisend, String[] prot) */ public class Kontroll{ static SortedSet sr1= new TreeSet(); // static SortedSet sr2 = new TreeSet(); static Vector sr2 = new Vector(300); static Vector ser = new Vector(); static Vector koik = new Vector(); public Kontroll(){ } public Kontroll(Vector[] v, Andmed and){ Vector[] koik= new Vector[(v.length + 1)]; for (int nr=0; nr0)){ // 5 int nr1=0; boolean kord=false; while(nr10) koht=searchAndmed(v, server[1]); // liidab kokku sellelt urlilt leitud sonad muidu neid hoitakse linkide kaupa b.leitud=leitudSonad(a); b.loetud=true; //if (koht==-1) v.addElement(b); else v.set(koht, b); koik.set(nr, v); // kirjutab url i faili kui leiti sonu 'vastus.dat' kasKasulik(server, b); } catch (Exception element){ // 5 Hd.kiri(element.toString() + " Kontroll.loppAndmed(..)"); } // } // 4 } // end loppAndmed // eraldabsisendist, mis on url protocoli+ serveri // ja teisena faili taisnime public static String[] serveriks(String sisend) { // kontroll, kas on korras url ja muutmine URL objektiks URL u; try{ u=URLabi.urliks(sisend); String[] vastus={u.getProtocol() + "://" + u.getHost(), u.getFile()}; vastus[0]=vastus[0].toLowerCase(); return vastus; } catch (MalformedURLException poleURL) { return null; } } // end serveriks // lisab koik Vectorisse uue elemendi public static void lisa(String fail, int nr){ Andmed a = new Andmed(fail, nr); Vector v = new Vector(); v.addElement(a); koik.addElement(v); } // end lisa public static boolean lisanda(Analyys a) throws IOException{ //1 boolean polnud1=false, oli2=false; try{ // 2 if (a!=null){ //3 String[] server=serveriks(a.link); if((server[0]!=null) &(server[0].length()>0)){ // 3,5 // set votab malu, kuid esialgu on nii mulle lihtsam polnud1=sr1.add(server[0]); oli2=sr2.contains(addr(server)); if (!oli2) sr2.addElement(addr(server)); if ((polnud1) | (!oli2)){ //4 // kirjutab faili otsi.tmp vahetulem(addr(server)); if (polnud1){ // 5 ser.addElement(server[0]); lisa(server[1], a.leitud.length); } else { // -+ int koht=ser.indexOf(server[0]); vaertusta(koht, a, server[1]); } // 5 } // 4 } // 3,5 } // end if !=null 3 } catch (IOException l1){ // 2 Hd.kiri(l1.toString() + "\n" + " Kontroll.lisanda() lopp"); } return (polnud1 | !oli2); } // end lisanda // vaartustab vastavat koik elemendi valju element on object Andmed public static void vaertusta(int koht, Analyys a, String serv) { Andmed b= new Andmed(serv, a.leitud.length); Vector v = new Vector(); v=((Vector)koik.elementAt(koht)); b.linkhea=a.s_leitud; b.link_lisa=a.leitud; v.addElement(b); koik.set(koht, v); } // end lisanda // teeb Stringimasiivist Stringi public static String addr(String[] sisend) { if (sisend!=null){ String vastus=sisend[0]; int nr=1; while (nr