import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import com.heirloomcomputing.ecs.api.ICallTarget;
import com.heirloomcomputing.ecs.api.IDatatype;

public class getRecord implements ICallTarget {

	@Override
	public Object call(boolean[] arg0, Object[] arg1) throws Throwable {
		if(arg1!=null)
		{
			// get our account number from the first argument
			String acctdo = ((IDatatype) arg1[0]).toString();
			Double limit = 0.0;
	        Double balance = 0.0;
			Connection c = null;
			Statement stmt = null;
			
			try {
			      Class.forName("org.postgresql.Driver");
			      c = DriverManager.getConnection("jdbc:postgresql://heirloom-demos.cm5eaq1yy4ad.us-west-1.rds.amazonaws.com/account","heirloomread", "heirloomread");
			      System.out.println("Successfully Connected.");     
			      stmt = c.createStatement();
			      ResultSet rs = stmt.executeQuery( "SELECT acctdo, limitdo,pay1_balance FROM public.acctfil_acctrec_view where acctdo='" + acctdo + "'");

			      while ( rs.next() ) {
			         limit = rs.getDouble("limitdo");
			         balance = rs.getDouble("pay1_balance");
			         System.out.printf( "Java Balance:%s\n", balance.toString() );
			         System.out.printf( "Java Limit:%s\n", limit.toString() );
			      }

			      rs.close();
			      stmt.close();
			      c.close();
			      
			   } catch ( Exception e ) {
				      System.out.println( e.getClass().getName()+": "+ e.getMessage() );
				      return new Integer(1);
			   }
			   
			// pass back the balance and limit using the next 2 arguments
			   ((IDatatype) arg1[1]).fromText(balance.toString());
		       ((IDatatype) arg1[2]).fromText(limit.toString());
			
			
		}
	return new Integer(0);
	}

}
