last day (16 days later) » 

8:09 PM
1
Q: ¿Cómo simplificar este código debido a una variación de criterio usando Java (Android)?

A. CedanoEstoy trabajando en una aplicaciĆ³n Android que recibe un JSON desde el servidor y lo parsea a varias clases usando Gson. La dificultad la tengo en esta parte del JSON: "salmodia": { "tipo": 0, "salmos": [{ "orden": "1", ...

 
@elporfirio el método que hace eso es getSalmoCompleto. Lo que quiero es precisamente reutilizar ese método, no crear un método distinto por cada condición. Las variaciones son pocas y no quiero tener n métodos como getSalmoCompletoSituacion1(), getSalmoCompletoSituacion2(), getSalmoCompletoSituacionN(), sino evaluar todo dentro de un mismo método controlando cada situación y, si fuera posible usando un mismo for
@elporfirio mi JSON está tomado conforme a mi modelo de datos y lo mismo el mapeo que hace Gson. No puedo bajo ningún concepto alterar el modelo de datos. Lo único cambiante es la cuestión de la antifona, que en unos casos se debe mostrar una por cada salmo y en otros una que los englobe a todos. Viendo las cosas más de cerca creo que puedo trabajar eso partiendo del método getAntifona del objeto SalmoCompleto... Puedo pasar a getAntifona un parámetro options para que me traiga las tres o una sola según el caso, aunque quedaría pendiente cambiar el formato en el for ...
 
Padre, tendrías a bien mostrar al menos una de las variaciones, tengo algunas ideas pero el lenguaje me enreda un poco. Creo que viendo el código me quedará más claro y quizás pueda ayudar. Un saludo.
 
@jachguate gracias por el interés,¿qué parte del código quieres que te muestre? Entiendo que me extendí demasiado en al explicación, el núcleo del problema es que: en algunos casos se debe mostrar todo normal, como hace el método getSalmoCompleto, pero hay casos en que todo es casi normal, sólo que la antifona no se muestra seguida de cada salmo, sino una sola para todos los salmos que haya. En ese caso cambia también la posición de la misma (en el StringBuilder). Es básicamente eso lo que quiero manejar de una forma simple.
 
Si, creo que comprendo la idea. Lo que te pido es que nos muestres como quedaría el código para manejar el caso 1, si hubieses hecho otro método getSalmoCompletoCaso1, que sé que es lo que se busca evitar. Es para hacerme una idea más aterrizada de lo que variaría, pues quizás ando algo espeso hoy con el lenguaje natural. :)
 
@jachguate no he escrito ningún simulacro de getSalmoCompletoCaso1 porque precisamente lo quiero evitar. Pero sería exactamente igual que getSalmoCompleto, pero sacando la construcción de la antífona del for, para ponerla rodeando todo el resto del contenido de todos los salmos en la lista, tanto al principio como al final. Algo así: (a) Antifona (única) correspondiente - > (b) Todo el resto del contenido de los N salmos que haya (construido en el for) -> (c)De nuevo la antífona (única) correspondiente, cuyo texto es el mismo de (a)
 
8:09 PM
Ok, entiendo, si no es en código, al menos poder ver el resultado de ambos métodos. En realidad lo leí varias veces y no me termina de quedar claro (quizás porque no tengo idea de como se muestra un salmo). Un saludo.
 
@jachguate ahora pongo unas capturas de pantalla.
@jachguate a ver si ahora se entiende mejor el asunto.
 
Hola, buenas tardes ¿cómo estás?. Antes de plantear una respuesta y dado que no eres un programador novato, me gustaría saber si has valorado el uso de algunos ifpara lograr tu cometido y si es así, cuál es la razón por la que no estás haciéndolo de esa manera. A mi se me hace la más natural.
 

  last day (16 days later) »