package pravokutnik;

/*
Demonstrira kako se moze upotrebiti klasa pravokutnik.
*/

public class PravTest {


    public static void main(String[] args) { 

       
       Pravokutnik prav1 = new Pravokutnik(1, 1);     
            
       //koordinate za drugi pravokutnik ucitavamo sa komandne linije
       //najprije mora biti tocno cetiri argumenta 
       
       if (args.length!=4){
	   System.out.println("Komanda linija mora sadrzavati cetiri integera kao argumente!");  
         
          return; //ne nastavljamo -ako program nije u mogucnosti izvrsiti 
	  //trazeni zahtjev uvijek ispisite neku smislenu poruku korisniku
          //to je prethodna linija koda.    
       }
       //ispitujemo jesu li argumenti redom cijeli brojevi
       
       int x1=Integer.parseInt(args[0]); //podsjetite se kako smo prije 
       //dobijali integer vrijednost iz args[0] -koristimo staticku metodu
       //iz klase parseInt

       int y1=Integer.parseInt(args[1]);
       int x2=Integer.parseInt(args[2]); 
       int y2=Integer.parseInt(args[3]);

       //ako smo ovdje onda imamo cijele brojeve na komandnoj liniji
       //moramo provjeriti da je x1=<x2 i y1=<y2 da konstruiramo nas 
       //pravokutnik --vrlo lose rjesenje bolje cemo napraviti  malo
       //kasnije sa izuzetcima
  
       if(x1>x2) {
	   System.out.println("Tockama ("+x1+","+ y1+ ") i ("+x2+","+ y2+")  nije zadan pravokutnik.");
           return; //izlazimo iz programa  
       }
       
        if(y1>y2) {
	     System.out.println("Tockama ("+x1+","+ y1+ ") i ("+x2+","+ y2+")  nije zadan pravokutnik.");
           return; //izlazimo iz programa  
       } 

	//ako smo tu onda mozemo konstruirati pravokutnik

        Pravokutnik  prav2 = new Pravokutnik(x1, y1, x2, y2);
        
        //ispisimo nas pravokutnik 
        System.out.println(prav2); 

       
       //napismo dvije linije razmaka
       System.out.println("\n\n");

        //ovo je ekvivalentno sa   
        System.out.println("Jos jednom isti ispis: "+prav2.toString()); 
         
       //napismo dvije linije razmaka
       System.out.println("\n\n");

	//izracunajmo sada uniju 
        
        Pravokutnik  unija  =null; //inicijaliziramo  referencu 
         unija=prav1.unija(prav2);       

       System.out.println("Najmanji pravokutnik koji sadrzi prav1 i  prav2= " + unija);
 
       //napismo dvije linije razmaka
       System.out.println("\n\n");

       //jos jednom ali sada sa praznim pravokutnkiom
 
       unija=prav1.unija(null); //ne kreiramo eksplicitno sa new vec 
       //unutar metode unija      

       System.out.println("Najmanji pravokutnik koji sadrzi prav1 i prav2=null = " + unija);

       //napismo dvije linije razmaka
       System.out.println("\n\n");
      
       //sada ispisujemo i presjek
        
       Pravokutnik presjek=null;
       presjek=prav1.presjek(prav2);
         
      System.out.println("Presjek pravokutnika prav1 i  prav2 = " + presjek);
     
    }
}
