import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.StringTokenizer;
import us.jubat.classifier.LabeledDatum;
import us.jubat.common.Datum;
import us.jubat.recommender.RecommenderClient;

public class Update {

	private static Datum makeDatum(String team,double bave, double games,
			double pa,double atbat,double hit,double homerun,double runbat,
			double stolen,double bob,double hbp,double strikeout,
			double sacrifice,double dp,double slg,double obp,
			double ops,double rc27,double xr27) {
		return new Datum().addString("team",team)
			.addNumber("bave", bave)
			.addNumber("games", games)
			.addNumber("pa", pa)
			.addNumber("atbat", atbat)
			.addNumber("hit", hit)
			.addNumber("homerun", homerun)
			.addNumber("runbat", runbat)
			.addNumber("stolen", stolen)
			.addNumber("bob", bob)
			.addNumber("hbp", hbp)
			.addNumber("strikeout", strikeout)
			.addNumber("sacrifice", sacrifice)
			.addNumber("dp", dp)
			.addNumber("slg", slg)
			.addNumber("obp", obp)
			.addNumber("ops", ops)
			.addNumber("rc27", rc27)
			.addNumber("xr27", xr27);
	}

	public void start() throws Exception{
		String host = "127.0.0.1";
		int port = 9199;
		String name = "test";
	
		RecommenderClient client = new RecommenderClient(host, port, name, 1);
		LabeledDatum[] trainData=new LabeledDatum[200];
		int j=0;
		
		/************************player print********************************/
		try {
		      File csv = new File("dat/baseball.csv"); 
		      BufferedReader br = new BufferedReader(new FileReader(csv));
		      // 最終行まで読み込む
		      String line = "";
		      Datum datum=new Datum();
		      String[] tmp_s=new String[2];
		      double tmp[]=new double[19];
		      while ((line = br.readLine()) != null) {
		    	  int i=0;
		    	  int k=0;
		        StringTokenizer st = new StringTokenizer(line, ",");
		        while (st.hasMoreTokens()) {
		        	if(i<2){
		        	 tmp_s[i++]=st.nextToken();
		        	}else{
		        		tmp[k++]=Double.parseDouble(st.nextToken());
		        	}
		        }
		        
		       datum=makeDatum(tmp_s[1],tmp[0],tmp[1],tmp[2],tmp[3],tmp[4],tmp[5],
		        					tmp[6],tmp[7],tmp[8],tmp[9],tmp[10],tmp[11],tmp[12],
		        					tmp[13],tmp[14],tmp[15],tmp[16],tmp[17]);
		       client.updateRow(tmp_s[0],datum);
		      }
		      br.close();
		    } catch (FileNotFoundException e) {
		      // Fileオブジェクト生成時の例外捕捉
		      e.printStackTrace();
		    } catch (IOException e) {
		      // BufferedReaderオブジェクトのクローズ時の例外捕捉
		      e.printStackTrace();
		    }
	}

	
	public static void main(String[] args) throws Exception {
			    new Update().start();
			    System.exit(0);
	}

	
	
}
