package combd;

import java.net.*;
import java.io.*;

/**
*   Classe que fornece comunicação com o BD remoto através de queries enviadas à
*  uma URL.
* @author Marcos V. S. Godinho
*/
public class RequisitorDeQuery{

  private URL url;

  public RequisitorDeQuery(String url){

    try{
      this.url = new URL(url);
    }
    catch(MalformedURLException ex){

      System.err.println("URL inválida.");
      ex.printStackTrace();
    }
  }


  public Object requisitaQuery(String query, Object[][] param){

    Object obj = null;

    try{
          HttpMessage msg = new HttpMessage(url);
          InputStream  in = msg.sendPostMessage(new PedidoQuery(query, param));

          ObjectInputStream objin = new ObjectInputStream(in);
          obj = objin.readObject();
          objin.close();
    }
    catch(IOException ex0){

      System.err.println("Ocorreu um erro na comunicação com a URL passada.");
      ex0.printStackTrace();
    }
    catch(ClassNotFoundException ex1){

      ex1.printStackTrace();
    }

    return obj;
  }
}
