package dynamic.common;

import java.util.ArrayList;

public class Parser {

    private static String GetTable(String page_str) {

        int table_start = page_str.lastIndexOf("<table");
        int table_end = page_str.lastIndexOf("</table>");

        return page_str.substring(table_start, table_end);

    }

    public static ArrayList<String> GetHeaders(String page_str) {

        ArrayList<String> headers = new ArrayList<String>();

        String table = GetTable(page_str);

        int header_row_start = table.indexOf("<th");
        int header_row_end = table.indexOf("<tr", header_row_start);

        String header_row = table.substring(header_row_start, header_row_end);

        String[] split = header_row.split("<th");
        for (int i = 1; i < split.length; i++) {
            int bpos = split[i].indexOf(">");
            String s = split[i].substring(bpos + 1).trim();
            headers.add(s);
        }

        return headers;

    }

    public static ArrayList<ArrayList<String>> GetData(String page_str) {

        ArrayList<ArrayList<String>> data = new ArrayList<ArrayList<String>>();

        if (page_str.indexOf("*** No records matching query ***") >= 0)
            return data;

        String table = GetTable(page_str);


        String[] split = table.split("<tr");
        for (int i = 2; i < split.length; i++) {

            String full_row = split[i] + " "; // added to make split work better

            String[] row = full_row.split("<td>");
            ArrayList<String> rowa = new ArrayList<String>();
            for (int j = 1; j < row.length; j++) {
                rowa.add(row[j].trim());
            }
            data.add(rowa);
        }

        return data;


    }


}
