package br.com.elotech.websaude.integracao.esus.util;

import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;

public abstract class Util {

  public static List<HashMap> resultSetToArrayList(ResultSet rs) throws SQLException {
    ResultSetMetaData md = rs.getMetaData();
    int columns = md.getColumnCount();
    ArrayList list = new ArrayList();
    while (rs.next()) {
      HashMap row = new HashMap(columns);
      for (int i = 1; i <= columns; ++i) {
        row.put(md.getColumnName(i), rs.getObject(i));
      }
      list.add(row);
    }

    return list;
  }

  public static HashMap addToHashMap(HashMap hash, ResultSet rs) throws SQLException {
    ResultSetMetaData md = rs.getMetaData();
    int columns = md.getColumnCount();
    while (rs.next()) {
      for (int i = 1; i <= columns; ++i) {
        hash.put(md.getColumnName(i), rs.getObject(i));
      }
    }
    return hash;
  }

  public static void showLoading(String titulo, Integer atual, Integer total) {
    String perc = (((1000L * atual) / total) / 10.0) + "%";
    System.out.println(String.format("Carregando %s : %s | %s de %s", titulo, perc, atual, total));
  }

  public static String verificaNulo(Object dado) {
    return (dado != null ? dado.toString().trim() : null);
  }

  public static String emptyWhenNull(String valor) {
    return Objects.toString(valor, "");
  }
}
