Skip to content

Commit 8c08bba

Browse files
authored
Comentarios
1 parent 4836a79 commit 8c08bba

File tree

1 file changed

+35
-4
lines changed

1 file changed

+35
-4
lines changed

src/Colmena/Colmena.java

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,35 +3,52 @@
33
import java.util.ArrayList;
44
import java.util.List;
55
import java.util.Map;
6-
76
import static Colmena.Utilidades.printWithDelay;
87

98
public class Colmena implements Serializable {
9+
// Identificador único de la colmena.
1010
public String id;
11+
12+
// Ubicación geográfica de la colmena (por ejemplo, granja o apiario).
1113
public String ubicacion;
14+
15+
// Estado de salud de la colmena: "Buena", "Regular", "Mala".
1216
public String estadoSalud;
17+
18+
// Cantidad de abejas dentro de la colmena.
1319
public int cantidadAbejas;
20+
21+
// Cantidad de miel producida por la colmena (en kilogramos).
1422
public double produccionMiel;
23+
24+
// Información sobre la abeja reina asociada a esta colmena.
1525
public AbejaReina abejaReina;
26+
27+
// Lista de inspecciones realizadas a la colmena, registradas cronológicamente.
1628
public List<Inspeccion> inspecciones;
1729

30+
// Constructor de la colmena. Se inicializan los valores básicos y la lista de inspecciones.
1831
public Colmena(String id, String ubicacion, String estadoSalud, int cantidadAbejas, double produccionMiel) {
1932
this.id = id;
2033
this.ubicacion = ubicacion;
2134
this.estadoSalud = estadoSalud;
2235
this.cantidadAbejas = cantidadAbejas;
2336
this.produccionMiel = produccionMiel;
24-
this.inspecciones = new ArrayList<>();
37+
this.inspecciones = new ArrayList<>(); // Inicializamos la lista de inspecciones vacía.
2538
}
2639

40+
// Método para asignar una abeja reina a la colmena.
2741
public void agregarAbejaReina(AbejaReina abejaReina) {
2842
this.abejaReina = abejaReina;
2943
}
3044

45+
// Método para agregar una nueva inspección al historial de la colmena.
3146
public void agregarInspeccion(Inspeccion inspeccion) {
32-
inspecciones.add(inspeccion);
47+
inspecciones.add(inspeccion); // Añadimos la inspección al final de la lista.
3348
}
3449

50+
// Método para editar los datos de un apicultor existente.
51+
// Permite cambiar el nombre o el teléfono del apicultor.
3552
public static void editarApicultor(Apicultor apicultor, List<Apicultor> apicultores) {
3653
printWithDelay("""
3754
📝 ¿Qué deseas editar?
@@ -41,24 +58,28 @@ public static void editarApicultor(Apicultor apicultor, List<Apicultor> apiculto
4158
String opcion = Utilidades.getValidInput("Selecciona una opción: ", "[1-2]");
4259
switch (opcion) {
4360
case "1" -> {
61+
// Se actualiza el nombre del apicultor.
4462
apicultor.nombre = Utilidades.getValidInput("🧑‍🌾 Nuevo nombre: ", ".+");
4563
printWithDelay("✅ Nombre actualizado.\n", 50);
4664
}
4765
case "2" -> {
66+
// Se actualiza el teléfono si es válido y no existe ya en otro apicultor.
4867
String nuevoTelefono = Utilidades.getValidInput("📞 Nuevo teléfono (10 dígitos): ", "\\d{10}");
4968
boolean telefonoExistente = apicultores.stream().anyMatch(a -> a.telefono != null && a.telefono.equals(nuevoTelefono) && !a.equals(apicultor));
5069

5170
if (telefonoExistente) {
71+
// Si el teléfono ya está registrado, mostramos un mensaje de error.
5272
printWithDelay("\n⚠️ El teléfono " + nuevoTelefono + " ya está registrado por otro apicultor. Intenta con otro número.", 50);
5373
} else {
54-
apicultor.telefono = nuevoTelefono;
74+
apicultor.telefono = nuevoTelefono; // Actualizamos el teléfono.
5575
printWithDelay("✅ Teléfono actualizado.\n", 50);
5676
}
5777
}
5878
default -> printWithDelay("⚠️ Opción no válida. No se realizaron cambios.\n", 50);
5979
}
6080
}
6181

82+
// Método para editar los datos de la colmena. Permite cambiar la ubicación, estado de salud, cantidad de abejas o producción de miel.
6283
public static void editarColmena(Colmena colmena) {
6384
printWithDelay("""
6485
📝 ¿Qué deseas editar?
@@ -70,27 +91,33 @@ public static void editarColmena(Colmena colmena) {
7091
String opcion = Utilidades.getValidInput("Selecciona una opción: ", "[1-4]");
7192
switch (opcion) {
7293
case "1" -> {
94+
// Se actualiza la ubicación de la colmena.
7395
colmena.ubicacion = Utilidades.getValidInput("📍 Nueva ubicación: ", ".+");
7496
printWithDelay("✅ Ubicación actualizada.\n", 50);
7597
}
7698
case "2" -> {
99+
// Se actualiza el estado de salud de la colmena.
77100
colmena.estadoSalud = Utilidades.getValidInput("❤️ Nuevo estado de salud (Buena/Regular/Mala): ", "Buena|Regular|Mala");
78101
printWithDelay("✅ Estado de salud actualizado.\n", 50);
79102
}
80103
case "3" -> {
104+
// Se actualiza la cantidad de abejas.
81105
colmena.cantidadAbejas = Integer.parseInt(Utilidades.getValidInput("🐝 Nueva cantidad de abejas: ", "[1-9]\\d*"));
82106
printWithDelay("✅ Cantidad de abejas actualizada.\n", 50);
83107
}
84108
case "4" -> {
109+
// Se actualiza la producción de miel en kilogramos.
85110
colmena.produccionMiel = Double.parseDouble(Utilidades.getValidInput("🍯 Nueva producción de miel (kg): ", "^(?!0(\\.0+)?$)(\\d+(\\.\\d+)?|\\.\\d+)$"));
86111
printWithDelay("✅ Producción de miel actualizada.\n", 50);
87112
}
88113
default -> printWithDelay("⚠️ Opción no válida. No se realizaron cambios.\n", 50);
89114
}
90115
}
91116

117+
// Método para mostrar información detallada de una colmena, incluyendo datos de la colmena, la abeja reina y las inspecciones.
92118
public void mostrarInfo(int numeroColmena, Map<String, Apicultor> asignaciones) {
93119
StringBuilder colmenaInfo = new StringBuilder();
120+
// Agregamos la información básica de la colmena (ID, ubicación, estado de salud, cantidad de abejas y miel).
94121
colmenaInfo.append(String.format("""
95122
\r===============================
96123
# Colmena %d
@@ -102,22 +129,26 @@ public void mostrarInfo(int numeroColmena, Map<String, Apicultor> asignaciones)
102129
🍯 Producción de Miel: %.2f kg
103130
""", numeroColmena, id, ubicacion, estadoSalud, cantidadAbejas, produccionMiel)).append("\n");
104131

132+
// Si existe una abeja reina, mostramos su información.
105133
if (abejaReina != null) {
106134
colmenaInfo.append("👑 Información de la Abeja Reina:").append("\n");
107135
colmenaInfo.append(abejaReina.getInfo()).append("\n");
108136
}
109137

138+
// Si la colmena tiene un apicultor asignado, mostramos su información.
110139
if (asignaciones.containsKey(id)) {
111140
Apicultor apicultor = asignaciones.get(id);
112141
colmenaInfo.append(String.format("🧑‍🌾 Apicultor Asignado: %s (Tel: %s)\n", apicultor.nombre, apicultor.telefono)).append("\n");
113142
}
114143

144+
// Si la colmena tiene inspecciones registradas, las mostramos. Si no, indicamos que no hay inspecciones.
115145
if (!inspecciones.isEmpty()) {
116146
colmenaInfo.append("📜 Historial de Inspecciones:").append("\n");
117147
colmenaInfo.append(Inspeccion.getInfo(inspecciones, 1)).append("\n");
118148
} else {
119149
colmenaInfo.append("⚠️ No hay inspecciones registradas para esta colmena.\n");
120150
}
151+
// Mostramos toda la información construida.
121152
System.out.println(colmenaInfo);
122153
}
123154
}

0 commit comments

Comments
 (0)