Java - Ayuda con xml, el xml de pacientes no toma el atributo obraSocial

 
Vista:
Imágen de perfil de Francisco
Val: 85
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda con xml, el xml de pacientes no toma el atributo obraSocial

Publicado por Francisco (56 intervenciones) el 17/02/2019 18:06:46
Hola, ¿Cómo andan?

La lógica de los archivos xml, todo está bien. ¿Pero por qué el xml no registra el atributo obraSocial de cada paciente?, a continuación el código con todas las clases referidas a archivo xml de pacientes.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
public class Paciente extends Persona{
 
    private IntegerProperty dni;
    private StringProperty nombre;
    private StringProperty apellido;
    private StringProperty obraSocial;
    private ObjectProperty<LocalDate>fechaDeNacimiento;
    private StringProperty direccion;
    private LongProperty telefono;
 
 public Paciente(int dni,String nombre,String apellido,String obraSocial){
 
        this.dni = new SimpleIntegerProperty(dni);
        this.nombre = new SimpleStringProperty(nombre);
        this.apellido = new SimpleStringProperty(apellido);
        this.obraSocial = new SimpleStringProperty(obraSocial);
        this.fechaDeNacimiento = new SimpleObjectProperty<LocalDate>();
        this.direccion = new SimpleStringProperty("");
        this.telefono = new SimpleLongProperty();
 
    }
        public Paciente(){
        this(0,null,null,null);
    }
 
public IntegerProperty dniProperty(){
        return dni;
    }
    public int getDni(){
        return dni.get();
    }
    public void setDni(int dni){
        this.dni.set(dni);
    }
    public StringProperty nombreProperty(){
        return nombre;
    }
    public String getNombre(){
        return nombre.get();
    }
    public void setNombre(String nombre){
        this.nombre.set(nombre);
    }
    public StringProperty apellidoProperty(){
        return apellido;
    }
    public String getApellido(){
        return apellido.get();
    }
    public void setApellido(String apellido){
        this.apellido.set(apellido);
    }
    public StringProperty obraSocialProperty(){
        return obraSocial;
    }
    public String getObraSocial(){
        return obraSocial.get();
    }
    public void setobraSocial(String obraSocial){
        this.obraSocial.set(obraSocial);
    }
 
    @XmlJavaTypeAdapter(AdaptadorFechaLocal.class)
    public LocalDate getFechaDeNacimiento(){
       return fechaDeNacimiento.get();
    }
    public void setFechaDeNacimiento(LocalDate fechaDeNacimiento){
        this.fechaDeNacimiento.set(fechaDeNacimiento);
    }
    public ObjectProperty<LocalDate>fechaDeNacimientoProperty(){
        return fechaDeNacimiento;
    }
      public StringProperty direccionProperty(){
        return direccion;
    }
    public String getDireccion(){
        return direccion.get();
    }
    public void setDireccion(String direccion){
        this.direccion.set(direccion);
    }
    public LongProperty telefonoProperty(){
        return telefono;
    }
    public long getTelefono(){
        return telefono.get();
    }
    public void setTelefono(long telefono){
        this.telefono.set(telefono);
    }
 
}
 
@XmlRootElement(name = "pacientes")
public class ListaDeEnvolturaDePacientes {
 
    private List<Paciente> pacientes;
 
    @XmlElement(name = "paciente")
    public List<Paciente> getPacientes() {
        return pacientes;
    }
 
    public void setPacientes(List<Paciente> pacientes) {
        this.pacientes = pacientes;
    }
}
 
 
public class AppPrincipal extends Application {
 
 
     //inicializar plantillaAbmPaciente
    public void inicializarPlantillaAbmPaciente() {
        try {
            // Load root layout from fxml file.
            FXMLLoader cargador = new FXMLLoader();
            cargador.setLocation(AppPrincipal.class.getResource("vistas/PlantillaPacientes.fxml"));
            plantillaAbmPacientes = (BorderPane) cargador.load();
 
            // Show the scene containing the root layout.
            Scene escena = new Scene(plantillaAbmPacientes);
            escenaPrincipal.setScene(escena);
 
            // Give the controller access to the main app.
            ControladorDePlantillaDePacientes controladorDePlantillaDePacientes = cargador.getController();
            controladorDePlantillaDePacientes.setAplicacion(this);
 
 
            escenaPrincipal.show();
 
        } catch (IOException e) {
            e.printStackTrace();
        }
 
        // Try to load last opened person file.
        File archivo = getRutaDeArchivoDePaciente();
        if (archivo != null) {
        cargarDatosPacienteDesdeArchivo(archivo);
       }
 
 
    }
 
 public File getRutaDeArchivoDePaciente() {
    Preferences preferencias = Preferences.userNodeForPackage(AppPrincipal.class);
    String rutaDeArchivo = preferencias.get("rutaDestino", null);
    if (rutaDeArchivo != null) {
        return new File(rutaDeArchivo);
    } else {
        return null;
    }
 
}
     public void setRutaDeArchivoDePaciente(File archivo) {
    Preferences preferencias = Preferences.userNodeForPackage(AppPrincipal.class);
    if (archivo != null) {
        preferencias.put("rutaDestino", archivo.getPath());
 
        // Update the stage title.
        escenaPrincipal.setTitle("Clinica Médica - " + archivo.getName());
    } else {
        preferencias.remove("rutaDestino");
 
        // Update the stage title.
        escenaPrincipal.setTitle("");
    }
}
     public void cargarDatosPacienteDesdeArchivo(File archivo) {
    try {
        JAXBContext contexto = JAXBContext
                .newInstance(ListaDeEnvolturaDePacientes.class);
        Unmarshaller um = contexto.createUnmarshaller();
 
        // Reading XML from the file and unmarshalling.
        ListaDeEnvolturaDePacientes envolturaDePacientes = (ListaDeEnvolturaDePacientes) um.unmarshal(archivo);
 
 
        datosDePacientes.clear();
        datosDePacientes.addAll(envolturaDePacientes.getPacientes());
 
        // Save the file path to the registry.
        setRutaDeArchivoDePaciente(archivo);
 
    } catch (Exception e) { // catches ANY exception
 
        Alert alerta = new Alert(Alert.AlertType.ERROR);
 
       alerta.setTitle("error!");
       alerta.setHeaderText("no se puede cargar información del archivo " + archivo.getPath());
       alerta.initStyle(StageStyle.UNDECORATED);
       alerta.showAndWait();
 
 
    }
}
     public void guardarDatosPacienteEnArchivo(File archivo) {
    try {
        JAXBContext contexto = JAXBContext
                .newInstance(ListaDeEnvolturaDePacientes.class);
      Marshaller m = contexto.createMarshaller();
 
        m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
//m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
        // Wrapping our person data.
        ListaDeEnvolturaDePacientes envolturaDePacientes = new ListaDeEnvolturaDePacientes();
        envolturaDePacientes.setPacientes(datosDePacientes);
 
        // Marshalling and saving XML to the file.
       m.marshal(envolturaDePacientes, archivo);
 
        // Save the file path to the registry.
        setRutaDeArchivoDePaciente(archivo);
 
 
    } catch (Exception e) { // catches ANY exception
        Alert alerta = new Alert(Alert.AlertType.ERROR);
 
        alerta.setTitle("error");
        alerta.setHeaderText("no se pudo guardar la información en el archivo: \n" + archivo.getPath());
        alerta.initStyle(StageStyle.UNDECORATED);
        alerta.showAndWait();
    }
    }
 
 
}
 
public class ControladorDePlantillaDePacientes {
 
     private AppPrincipal aplicacionPrincipal;
 
    private ObservableList<ControladorDeBaseDeDatos> controladores;
 
    private List<Persona> personas;
 
    public void setAplicacion(AppPrincipal aplicacion){
        this.aplicacionPrincipal = aplicacion;
    }
 @FXML
    private void btNuevo(){
        aplicacionPrincipal.getDatosDePacientes().clear();
        aplicacionPrincipal.setRutaDeArchivoDePaciente(null);
 
    }
    @FXML
    private void btGuardarComo(){
           FileChooser archivoEscogedor = new FileChooser();
 
 
        // Set extension filter
        FileChooser.ExtensionFilter filtroDeExtension = new FileChooser.ExtensionFilter(
                "XML files (*.xml)", "*.xml");
        archivoEscogedor.getExtensionFilters().add(filtroDeExtension);
 
        // Show save file dialog
        File archivo = archivoEscogedor.showSaveDialog(aplicacionPrincipal.getEscenaPrincipal());
 
        if (archivo != null) {
            // Make sure it has the correct extension
            if (!archivo.getPath().endsWith(".xml")) {
                archivo = new File(archivo.getPath() + ".xml");
            }
 
            aplicacionPrincipal.guardarDatosPacienteEnArchivo(archivo);
          Alert alerta = new Alert(Alert.AlertType.CONFIRMATION);
            alerta.initOwner(aplicacionPrincipal.getEscenaPrincipal());
            alerta.setTitle("Guardado");
            alerta.setHeaderText("archivo guardado con éxito.");
            alerta.setContentText("ruta del archivo: " + archivo.getPath());
            alerta.initStyle(StageStyle.UNDECORATED);
            alerta.showAndWait();
 
        }
    }
    @FXML
    private void btGuardar(){
         File archivoDePaciente = aplicacionPrincipal.getRutaDeArchivoDePaciente();
        if (archivoDePaciente != null) {
 
            aplicacionPrincipal.guardarDatosPacienteEnArchivo(archivoDePaciente);
 
             Alert alerta = new Alert(Alert.AlertType.INFORMATION);
            alerta.initOwner(aplicacionPrincipal.getEscenaPrincipal());
            alerta.setTitle("Guardado");
            alerta.setHeaderText("archivo guardado con éxito.");
            alerta.setContentText("ruta del archivo: " + archivoDePaciente);
            alerta.initStyle(StageStyle.UNDECORATED);
            alerta.showAndWait();
 
        } else {
            btGuardarComo();
        }
 
    }
    @FXML
    private void btAbrir(){
         FileChooser archivoEscogedor = new FileChooser();
 
        // Set extension filter
        FileChooser.ExtensionFilter filtroDeExtension = new FileChooser.ExtensionFilter(
                "XML files (*.xml)", "*.xml");
        archivoEscogedor.getExtensionFilters().add(filtroDeExtension);
 
        // Show save file dialog
        File archivo = archivoEscogedor.showOpenDialog(aplicacionPrincipal.getEscenaPrincipal());
 
 
        if (archivo != null) {
            aplicacionPrincipal.cargarDatosPacienteDesdeArchivo(archivo);
            Alert alerta = new Alert(Alert.AlertType.CONFIRMATION);
            alerta.setTitle("Cargado");
            alerta.setHeaderText("archivo cargado exitosamente");
            alerta.setContentText("ruta del archivo: " + archivo.getPath());
            alerta.initStyle(StageStyle.UNDECORATED);
            alerta.showAndWait();
        }
    }
 
}

¿Cuál puede ser el problema por el cuál no reconozca el atributo de obraSocial?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder