package edu.columbia.dbmi.ohdsims.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class CmdUtil {
	public static int save2File(String fileName, String content) {
		File file = new File(fileName);
		try {
			// if the file is not exist, create it!
			if (file.exists() == false) {

				file.createNewFile();

			}
			// the second parameter is 'true' means add contents at the end of
			// the file
			FileWriter writer = new FileWriter(fileName);
			writer.write(content);
			writer.close();
			return 1;
		} catch (IOException e) {
			e.printStackTrace();
			return 0;
		}

	}
	
public static String callEliIE(String file){
	InputStream in = null;  
    try { 
    	long startTime = System.currentTimeMillis();
        Process pro = Runtime.getRuntime().exec(new String[]{"sh",  
                                 "/Users/yuanchi/Documents/git/EliIE/yccall.sh","/Users/yuanchi/Documents/git/EliIE/Tempfile",  
                                 "EliIE_input_free_text.txt","/Users/yuanchi/Documents/git/EliIE/Tempfile"});  
        pro.waitFor();  
        long endTime=System.currentTimeMillis();
        System.out.println("Call API time (unit:millisecond):" + (endTime - startTime));
        in = pro.getInputStream();  
        BufferedReader read = new BufferedReader(new InputStreamReader(in)); 
        String line;  	
        StringBuffer result=new StringBuffer();
        boolean start=false;
        boolean end=false;
        while ((line = read.readLine()) != null) {
			if (line.equals("<root>")) {
				start = true;
				result.append(line);
				continue;
			}
			else if(line.equals("</root>")) {
				end = true;
				result.append(line);
				continue;
			}
			if (start == true&&end==false) {
				result.append(line);
			}
        }
        //System.out.println("result="+result.toString());
        //XMLUtil.parseXML(result.toString());
       return result.toString();
    } catch (Exception e) {  
        e.printStackTrace();  
        return null;
    }  
}
}