PageRenderTime 161ms CodeModel.GetById 29ms RepoModel.GetById 15ms app.codeStats 0ms

/PaginaWeb/Cronograma/src/conexion/ConexionBaseDatos.java

https://gitlab.com/in-silico/in-silico
Java | 240 lines | 224 code | 16 blank | 0 comment | 36 complexity | 086fb081d1af10eb95a9f86d11a0fdf2 MD5 | raw file
  1. package conexion;
  2. import java.io.InputStream;
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.Calendar;
  6. import java.util.Collections;
  7. import java.util.List;
  8. import modelo.Estado;
  9. import modelo.Integrante;
  10. import modelo.Registro;
  11. import modelo.Tarea;
  12. import org.apache.http.HttpEntity;
  13. import org.apache.http.HttpResponse;
  14. import org.apache.http.NameValuePair;
  15. import org.apache.http.client.entity.UrlEncodedFormEntity;
  16. import org.apache.http.client.methods.HttpPost;
  17. import org.apache.http.impl.client.DefaultHttpClient;
  18. import org.apache.http.message.BasicNameValuePair;
  19. import org.apache.http.protocol.HTTP;
  20. public class ConexionBaseDatos
  21. {
  22. public static String SERVIDOR;
  23. private static final String SCRIPT1 = "cronJava.php";
  24. private static final String SCRIPT2 = "cronJava.php";
  25. private static final String SCRIPT3 = "cronJava.php";
  26. private static final String SCRIPT4 = "cronJava.php";
  27. private static final String SCRIPT5 = "contCronJava.php";
  28. private static final String SCRIPT6 = "contCronJava.php";
  29. private static final String SCRIPT7 = "contCronJava.php";
  30. private static final String SCRIPT8 = "userJava.php";
  31. private static String peticionPost(String direccion, List <NameValuePair> nvps) throws Exception
  32. {
  33. DefaultHttpClient clienteHttp = new DefaultHttpClient();
  34. HttpPost peticionPost = new HttpPost(SERVIDOR + direccion);
  35. nvps.add(new BasicNameValuePair("IDToken2", "password"));
  36. peticionPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
  37. HttpResponse respuesta = clienteHttp.execute(peticionPost);
  38. HttpEntity entidadHttp = respuesta.getEntity();
  39. respuesta.getStatusLine();
  40. StringBuilder sb = new StringBuilder("");
  41. if (entidadHttp != null)
  42. {
  43. InputStream instream = entidadHttp.getContent();
  44. int numeroLeidos;
  45. byte[] lectura = new byte[2048];
  46. while ((numeroLeidos = instream.read(lectura)) != -1)
  47. {
  48. for(int i = 0; i < numeroLeidos; i++)
  49. {
  50. sb.append((char) lectura[i]);
  51. }
  52. }
  53. }
  54. clienteHttp.getConnectionManager().shutdown();
  55. return sb.toString();
  56. }
  57. public static ArrayList <Tarea> leerTareasActuales(String idProyecto, ArrayList <Integrante> integrantes) throws Exception
  58. {
  59. List <NameValuePair> nvps = new ArrayList <NameValuePair> ();
  60. nvps.add(new BasicNameValuePair("idProyecto", idProyecto));
  61. nvps.add(new BasicNameValuePair("command", "getCronByProject"));
  62. String resultado = peticionPost(SCRIPT1, nvps);
  63. String[] lineas = resultado.split("\n");
  64. ArrayList <Tarea> nuevasTareas = new ArrayList <Tarea> ();
  65. int ultimoId = -1;
  66. ArrayList <String> preRequisitos = new ArrayList <String> ();
  67. ArrayList <Integer> padres = new ArrayList <Integer> ();
  68. for(int i = 0; i < lineas.length; i++)
  69. {
  70. if(lineas[i].equals(""))
  71. continue;
  72. String[] actual = lineas[i].split(",");
  73. String concepto = actual[0];
  74. int id = Integer.parseInt(actual[1]);
  75. ArrayList <Integrante> integrantesActual = new ArrayList <Integrante> ();
  76. String nicks = actual[2].length() == 0 ? "" : actual[2].substring(0, actual[2].length() - 1);
  77. for(String nick : nicks.split(" "))
  78. if(!nick.equals(""))
  79. integrantesActual.add(integrantes.get(Collections.binarySearch(integrantes, new Integrante("", nick))));
  80. preRequisitos.add(actual[3]);
  81. if(actual[4].equals(""))
  82. padres.add(-1);
  83. else
  84. padres.add(Integer.parseInt(actual[4]));
  85. Estado estado = Estado.values()[Integer.parseInt(actual[5])];
  86. nuevasTareas.add(new Tarea(idProyecto, id, concepto, null, Integer.parseInt(actual[6]), estado, Integer.parseInt(actual[7]), null, integrantesActual));
  87. ultimoId = Math.max(ultimoId, id);
  88. }
  89. Tarea[] porIds = new Tarea[ultimoId + 1];
  90. for(Tarea t : nuevasTareas)
  91. porIds[t.id] = t;
  92. for(int i = 0; i < nuevasTareas.size(); i++)
  93. {
  94. if(padres.get(i) != -1)
  95. {
  96. nuevasTareas.get(i).padre = porIds[padres.get(i)];
  97. porIds[padres.get(i)].hijos.add(nuevasTareas.get(i));
  98. }
  99. ArrayList <Tarea> pre = new ArrayList <Tarea> ();
  100. for(String s : preRequisitos.get(i).split(" "))
  101. if(!s.equals(""))
  102. pre.add(porIds[Integer.parseInt(s)]);
  103. nuevasTareas.get(i).preRequisitos = pre;
  104. }
  105. return nuevasTareas;
  106. }
  107. public static void actualizarTarea(Tarea tarea) throws Exception
  108. {
  109. List <NameValuePair> nvps = new ArrayList <NameValuePair> ();
  110. nvps.add(new BasicNameValuePair("command", "update"));
  111. nvps.add(new BasicNameValuePair("id", tarea.id + ""));
  112. nvps.add(new BasicNameValuePair("concepto", tarea.concepto));
  113. String integrantes = "";
  114. for(Integrante i : tarea.responsables)
  115. integrantes += i.id + ",";
  116. if(integrantes.length() > 0)
  117. integrantes = integrantes.substring(0, integrantes.length() - 1);
  118. nvps.add(new BasicNameValuePair("resp", integrantes));
  119. String preRequisitos = "";
  120. for(Tarea t : tarea.preRequisitos)
  121. preRequisitos += t.id + " ";
  122. if(preRequisitos.length() > 0)
  123. preRequisitos = preRequisitos.substring(0, preRequisitos.length() - 1);
  124. nvps.add(new BasicNameValuePair("prereq", preRequisitos));
  125. nvps.add(new BasicNameValuePair("padre", tarea.padre == null ? "" : tarea.padre.id + ""));
  126. nvps.add(new BasicNameValuePair("estado", tarea.estado.ordinal() + ""));
  127. nvps.add(new BasicNameValuePair("tiempo", tarea.tiempo + ""));
  128. if(peticionPost(SCRIPT2, nvps).contains("failure"))
  129. throw new Exception("");
  130. }
  131. public static void eliminarTarea(int id) throws Exception
  132. {
  133. List <NameValuePair> nvps = new ArrayList <NameValuePair> ();
  134. nvps.add(new BasicNameValuePair("command", "delete"));
  135. nvps.add(new BasicNameValuePair("id", id + ""));
  136. if(peticionPost(SCRIPT3, nvps).contains("failure"))
  137. throw new Exception("");
  138. }
  139. public static void crearTarea(Tarea tarea, String idProyecto) throws Exception
  140. {
  141. List <NameValuePair> nvps = new ArrayList <NameValuePair> ();
  142. nvps.add(new BasicNameValuePair("command", "insert"));
  143. nvps.add(new BasicNameValuePair("idProyecto", idProyecto));
  144. nvps.add(new BasicNameValuePair("concepto", tarea.concepto));
  145. String integrantes = "";
  146. for(Integrante i : tarea.responsables)
  147. integrantes += i.id + ",";
  148. if(integrantes.length() > 0)
  149. integrantes = integrantes.substring(0, integrantes.length() - 1);
  150. nvps.add(new BasicNameValuePair("resp", integrantes));
  151. String preRequisitos = "";
  152. for(Tarea t : tarea.preRequisitos)
  153. preRequisitos += t.id + " ";
  154. if(preRequisitos.length() > 0)
  155. preRequisitos = preRequisitos.substring(0, preRequisitos.length() - 1);
  156. nvps.add(new BasicNameValuePair("prereq", preRequisitos));
  157. nvps.add(new BasicNameValuePair("padre", tarea.padre == null ? "" : tarea.padre.id + ""));
  158. nvps.add(new BasicNameValuePair("estado", tarea.estado.ordinal() + ""));
  159. nvps.add(new BasicNameValuePair("tiempo", tarea.tiempo + ""));
  160. if(peticionPost(SCRIPT4, nvps).contains("failure"))
  161. throw new Exception("");
  162. }
  163. public static ArrayList <Registro> darRegistros(int id, Integrante[] integrantes) throws Exception
  164. {
  165. List <NameValuePair> nvps = new ArrayList <NameValuePair> ();
  166. nvps.add(new BasicNameValuePair("command", "getContCronByIdCron"));
  167. nvps.add(new BasicNameValuePair("id", id + ""));
  168. String respuesta = peticionPost(SCRIPT5, nvps);
  169. String[] lineas = respuesta.split("\n");
  170. ArrayList <Registro> registros = new ArrayList <Registro> ();
  171. for(int i = 0; i < lineas.length; i++)
  172. {
  173. if(lineas[i].equals(""))
  174. continue;
  175. String[] actual = lineas[i].split(",");
  176. String nick = actual[0];
  177. String[] fecha = actual[1].split("-");
  178. Calendar calendario = Calendar.getInstance();
  179. calendario.set(Integer.parseInt(fecha[0]), Integer.parseInt(fecha[1]) - 1, Integer.parseInt(fecha[2]));
  180. int horas = Integer.parseInt(actual[2]);
  181. int idInterno = Integer.parseInt(actual[3]);
  182. registros.add(new Registro(integrantes[Arrays.binarySearch(integrantes, new Integrante("", nick))], calendario, horas, idInterno));
  183. }
  184. return registros;
  185. }
  186. public static void agregarRegistro(int id, Registro registro) throws Exception
  187. {
  188. List <NameValuePair> nvps = new ArrayList <NameValuePair> ();
  189. nvps.add(new BasicNameValuePair("command", "insert"));
  190. nvps.add(new BasicNameValuePair("id", id + ""));
  191. nvps.add(new BasicNameValuePair("integrante", registro.integrante.id));
  192. nvps.add(new BasicNameValuePair("fecha", registro.fecha.get(Calendar.YEAR) + "-" + (registro.fecha.get(Calendar.MONTH) + 1) + "-" + registro.fecha.get(Calendar.DATE)));
  193. nvps.add(new BasicNameValuePair("tiempo", registro.horas + ""));
  194. if(peticionPost(SCRIPT6, nvps).contains("failure"))
  195. throw new Exception("");
  196. }
  197. public static void eliminarRegistro(int idInterno) throws Exception
  198. {
  199. List <NameValuePair> nvps = new ArrayList <NameValuePair> ();
  200. nvps.add(new BasicNameValuePair("command", "delete"));
  201. nvps.add(new BasicNameValuePair("id", idInterno + ""));
  202. if(peticionPost(SCRIPT7, nvps).contains("failure"))
  203. throw new Exception("");
  204. }
  205. public static ArrayList <Integrante> darIntegrantes() throws Exception
  206. {
  207. List <NameValuePair> nvps = new ArrayList <NameValuePair> ();
  208. String respuesta = peticionPost(SCRIPT8, nvps);
  209. String[] lineas = respuesta.split("\n");
  210. ArrayList <Integrante> integrantes = new ArrayList <Integrante> ();
  211. for(String s : lineas)
  212. {
  213. if(s.equals(""))
  214. continue;
  215. String[] actual = s.split(",");
  216. integrantes.add(new Integrante(actual[0], actual[1]));
  217. }
  218. Collections.sort(integrantes);
  219. return integrantes;
  220. }
  221. public static void abrirReporte(int id, String idProyecto)
  222. {
  223. }
  224. }