package com.focasoftware.deboinventario; import android.util.Log; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import java.util.ArrayList; import java.util.HashMap; /** * Clase accesoria que permite las conversiones entre balizas de XML,USB y de BDD * @author GuillermoR * */ public class BalizasConversor { public final static int BDD = 1; public final static int XML = 2; public final static int USB = 3; /** * Almacena HashMaps con informaci�n de las Balizas */ private ArrayList> todos_vectores; /** * Constructor */ public BalizasConversor(){ todos_vectores = new ArrayList>(); } /** * Constructor con BDD y XML solos * @param baliza_BDD * @param baliza_XML *

1� Mete en un hashMap las valizas BDD, XML y "" para USB *

2� Agrega ese hashMap al arreglo */ public void put(String baliza_BDD, String baliza_XML) { //1� Mete en un hashMap las valizas BDD, XML y "" para USB HashMap vector = new HashMap(); vector.put(BDD, baliza_BDD); vector.put(XML, baliza_XML); vector.put(USB, ""); //2� Agrega ese hashMap al arreglo todos_vectores.add(vector); } /** * Constructor con BDD, XML y USB * @param baliza_BDD * @param baliza_XML * @param baliza_USB *

1� Mete en un hashMap las valizas BDD, XML y USB pasadas *

2� Agrega ese hashMap al arreglo */ public void put(String baliza_BDD, String baliza_XML, String baliza_USB) { Log.e("balizasConversotPut", baliza_BDD + ", " + baliza_XML + ", " + baliza_USB); //1� Mete en un hashMap las valizas BDD, XML y USB pasadas HashMap vector = new HashMap(); vector.put(BDD, baliza_BDD); vector.put(XML, baliza_XML); vector.put(USB, baliza_USB); //2� Agrega ese hashMap al arreglo todos_vectores.add(vector); } /** * Convierte una baliza xml en una de tabla de bdd * @param bal_xml * @param tabla_bdd * @return * @throws Exception� * *

1� Obtiene la baliza XML para la bdd pasada *

2� Busca esa baliza en todos los HashMaps y lo devuelve *

3� Si no encontramos, disparamos un error */ @Nullable public String xml2bdd(@NonNull String bal_xml, @NonNull String tabla_bdd) { try { int indice = -1; //1� Obtiene la baliza XML para la bdd pasada String codigo_xml_tabla = this.bdd2xml(tabla_bdd); Log.e("baliza", codigo_xml_tabla); Log.e("bal_xml", bal_xml); //2� Busca esa baliza en todos los HashMaps y lo devuelve for (HashMap vector : todos_vectores) { if ( (vector.get(XML)).compareTo(bal_xml) == 0 ) { indice = todos_vectores.indexOf(vector); String posible_resultado = (String) todos_vectores.get(indice).get(BDD); if (posible_resultado.contains(codigo_xml_tabla) == true) { Log.e("posible_resultado", posible_resultado); return posible_resultado; } } } } catch (Exception e) { Log.d("prueba", e.toString()); } return tabla_bdd; } /** * Convierte una baliza bdd pasada como parametro en una xml devuelta *

1� Busca en todos los vectores la informacion de XML correspondiente a esa * baliza bdd *

2� Si no encontramos, disparamos un error * @param bal_bdd * @return la baliza XML * @throws Exception */ @Nullable public String bdd2xml(@NonNull String bal_bdd) throws Exception { int indice = -1; //1� Busca en todos los vectores la informacion de XML correspondiente a esa //baliza bdd for (HashMap vector : todos_vectores) { if ( (vector.get(BDD)).compareTo(bal_bdd) == 0 ) { indice = todos_vectores.indexOf(vector); return (String) todos_vectores.get(indice).get(XML); } } //2� Si no encontramos, disparamos un error: throw new Exception("ERROR EN LA CONVERSI�N DE BALIZAS: (BDD) " + bal_bdd + " to XML"); } /** * Convierte una baliza usb en una baliza bdd *

1� Trasnforma la baliza bdd a codigo usb *

2� Busca ese codigo en los vectores *

3� Si no encontramos, disparamos un error * @param bal_usb * @param tabla_bdd * @return * @throws Exception */ @Nullable public String usb2bdd(@NonNull String bal_usb, @NonNull String tabla_bdd) throws Exception { try { int indice = -1; //1� Trasnforma la baliza bdd a codigo usb String codigo_usb_tabla = this.bdd2usb(tabla_bdd); //2� Busca ese codigo en los vectores for (HashMap vector : todos_vectores) { if ( (vector.get(USB)).compareTo(bal_usb) == 0 ) { indice = todos_vectores.indexOf(vector); String posible_resultado = (String) todos_vectores.get(indice).get(BDD); if (posible_resultado.contains(codigo_usb_tabla) == true) { return posible_resultado; } } } //3� Si no encontramos, disparamos un error: throw new Exception("ERROR EN LA CONVERSI�N DE BALIZAS: (USB) " + bal_usb + " to BDD" ); } catch (Exception e) { throw new Exception("ERROR EN LA CONVERSI�N DE BALIZAS: (USB) " + bal_usb + " to BDD"); } } /** * Devuelve la baliza usb correspondiente ala baliza bdd pasada como parametro *

1� Buscar en todos los vectores la baliza usb de la bdd pasada *

2� Si no encontramos, disparamos un error * @param bal_bdd * @return * @throws Exception */ @Nullable public String bdd2usb(@NonNull String bal_bdd) throws Exception { int indice = -1; //1� Buscar en todos los vectores la baliza usb de la bdd pasada for (HashMap vector : todos_vectores) { if ( (vector.get(BDD)).compareTo(bal_bdd) == 0 ) { indice = todos_vectores.indexOf(vector); return (String) todos_vectores.get(indice).get(USB); } } //2� Si no encontramos, disparamos un error: throw new Exception("ERROR EN LA CONVERSI�N DE BALIZAS: (BDD) " + bal_bdd + " to USB"); } }