package pckMapa;

import pckMapa.*;
import java.util.*;
import java.lang.*;

public class PegaEsquinas {

    public Vector vetorEsquinas = new Vector();

    public static String nomeArquivo = "/home/cc97/970250/mc726/unicamp.esquinas";

  public PegaEsquinas (){
   Vector arquivo = new Vector();
   try{
	java.io.FileInputStream file = new java.io.FileInputStream(this.getNomeArquivo());
	java.io.BufferedInputStream in = new java.io.BufferedInputStream(file);
	java.io.BufferedReader reader = new java.io.BufferedReader(new java.io.InputStreamReader(in));

	String linha = "";
	while ((linha = reader.readLine()) != null)
	{
	//System.out.println(linha);	
	arquivo.addElement(linha);		
	}
	file.close();
	in.close();
	reader.close();
   }
    catch(Exception e){
       System.out.println("Erro na leitura do arquivo: "+e);
   }	

   for (int i=1;i<arquivo.size();i++){
     String linha = "";
     linha = (String)arquivo.elementAt(i);	
     StringTokenizer linhaTok = new StringTokenizer(linha, ":");

     Esquina esquina = new Esquina();

     try{ 	
     //pega o codigo fda esquina
     esquina.setCodigoEsquina(new Integer(linhaTok.nextToken().trim()).intValue());
     }catch(Exception e){
      e.printStackTrace();
     }

    try{//pega a posicao X e Y
     StringTokenizer posicaoXeY = new StringTokenizer(linhaTok.nextToken().trim());
     esquina.setPosicaoX(new Double(posicaoXeY.nextToken().trim()).doubleValue());
     esquina.setPosicaoY(new Double(posicaoXeY.nextToken().trim()).doubleValue());
     }catch(Exception e){
      e.printStackTrace();
     }

     try{//pega os trechos que chegam
     StringTokenizer trechosChegam = new StringTokenizer(linhaTok.nextToken().trim());
     Vector vetorChegam = new Vector();
     while (trechosChegam.hasMoreTokens()){
      	 vetorChegam.addElement(Integer.valueOf(trechosChegam.nextToken().trim()));            	
     }
     esquina.setTrechoChegam(vetorChegam);
      }catch(Exception e){
      e.printStackTrace();
     }

    try{//pega os trechos que saem
    StringTokenizer trechosSaem = new StringTokenizer(linhaTok.nextToken().trim());
    Vector vetorSaem = new Vector();
    while (trechosSaem.hasMoreTokens()){
      	 vetorSaem.addElement(new Integer(trechosSaem.nextToken().trim()));            	
    }
    esquina.setTrechosSaem(vetorSaem);
    }catch(Exception e){
      e.printStackTrace();
     }
    //pega todos as conexoes entre os trechos que chegam e os trechos que saem

     colocaEsquinaVetor(esquina);
   }//for

 }


    public void colocaEsquinaVetor(Esquina esquina){
	this.vetorEsquinas.addElement(esquina);
    }


		
 public String getNomeArquivo(){
  	return this.nomeArquivo;
 }
}



