From d6a6651ad7648a55ecc6de0609cd3ea84e79db8a Mon Sep 17 00:00:00 2001 From: La Programmatrice Verde Date: Tue, 3 Mar 2026 11:11:53 +0100 Subject: [PATCH] Aggiungi conto corrente --- build/classes/gui/GUIMyBank$1.class | Bin 805 -> 805 bytes build/classes/gui/GUIMyBank$2.class | Bin 808 -> 808 bytes build/classes/gui/GUIMyBank$3.class | Bin 814 -> 814 bytes build/classes/gui/GUIMyBank$4.class | Bin 814 -> 814 bytes build/classes/gui/GUIMyBank$5.class | Bin 814 -> 814 bytes build/classes/gui/GUIMyBank.class | Bin 11015 -> 12610 bytes build/classes/gui/GUIMyBank.form | 136 ++++++++++--------- build/classes/logic/MyBank.class | Bin 11429 -> 10881 bytes nbproject/private/private.xml | 4 +- src/gui/GUIMyBank.form | 136 ++++++++++--------- src/gui/GUIMyBank.java | 195 +++++++++++++++------------- src/logic/MyBank.java | 129 ++++++------------ 12 files changed, 298 insertions(+), 302 deletions(-) diff --git a/build/classes/gui/GUIMyBank$1.class b/build/classes/gui/GUIMyBank$1.class index 86c6139d89a2a4a79483e619f390a7e047905eeb..889655e78d3927de0b35de34884d92e3243059b5 100644 GIT binary patch delta 23 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 EKPZsstN;K2 literal 11015 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 diff --git a/build/classes/gui/GUIMyBank.form b/build/classes/gui/GUIMyBank.form index 051ed83..e1c7a98 100644 --- a/build/classes/gui/GUIMyBank.form +++ b/build/classes/gui/GUIMyBank.form @@ -25,45 +25,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -75,6 +36,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -84,36 +87,46 @@ + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -221,5 +234,12 @@ + + + + + + + diff --git a/build/classes/logic/MyBank.class b/build/classes/logic/MyBank.class index b5fbd6c1547edd9adab6f8e9c8bd5ec8057fb135..520f37da58295281feb7e8ecd5784c7579887a0d 100644 GIT binary patch literal 10881 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 literal 11429 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 diff --git a/nbproject/private/private.xml b/nbproject/private/private.xml index 6807a2b..f974d63 100644 --- a/nbproject/private/private.xml +++ b/nbproject/private/private.xml @@ -2,6 +2,8 @@ - + + file:/home/Verde/git/GUIMyBank/src/gui/GUIMyBank.java + diff --git a/src/gui/GUIMyBank.form b/src/gui/GUIMyBank.form index 051ed83..e1c7a98 100644 --- a/src/gui/GUIMyBank.form +++ b/src/gui/GUIMyBank.form @@ -25,45 +25,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -75,6 +36,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -84,36 +87,46 @@ + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -221,5 +234,12 @@ + + + + + + + diff --git a/src/gui/GUIMyBank.java b/src/gui/GUIMyBank.java index cdf2cb6..c8c9496 100644 --- a/src/gui/GUIMyBank.java +++ b/src/gui/GUIMyBank.java @@ -5,6 +5,8 @@ package gui; import java.awt.Color; +import java.text.ParseException; +import java.util.Date; import java.util.regex.Pattern; import logic.MyBank; import logic.ContoCorrente; @@ -20,7 +22,7 @@ import javax.swing.border.LineBorder; public class GUIMyBank extends javax.swing.JFrame { static Border borderOriginale = UIManager.getBorder("TextField.border"); - static ContoCorrente contoCorrente; + static ContoCorrente contoCorrenteAperto; private static final java.util.logging.Logger logger = java.util.logging.Logger .getLogger(GUIMyBank.class.getName()); @@ -30,6 +32,9 @@ public class GUIMyBank extends javax.swing.JFrame { */ public GUIMyBank() { initComponents(); + lblNumeroContoCorrente.setVisible(false); + txtNumeroContoCorrente.setVisible(false); + txtNumeroContoCorrente.setEditable(false); btnVersamento.setVisible(false); btnPrelievo.setVisible(false); btnListaMovimenti.setVisible(false); @@ -45,6 +50,7 @@ public class GUIMyBank extends javax.swing.JFrame { @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { @@ -65,6 +71,8 @@ public class GUIMyBank extends javax.swing.JFrame { btnListaMovimenti = new javax.swing.JButton(); jScrollPane1 = new javax.swing.JScrollPane(); txtaListaMovimenti = new javax.swing.JTextArea(); + lblNumeroContoCorrente = new javax.swing.JLabel(); + txtNumeroContoCorrente = new javax.swing.JTextField(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); @@ -126,41 +134,14 @@ public class GUIMyBank extends javax.swing.JFrame { txtaListaMovimenti.setRows(5); jScrollPane1.setViewportView(txtaListaMovimenti); + lblNumeroContoCorrente.setText("Numero conto corrente:"); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(17, 17, 17) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(lblDataDiNascita) - .addComponent(lblSaldoIniziale)) - .addGap(18, 18, 18) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addGroup(layout.createSequentialGroup() - .addComponent(txtDataDiNascita, javax.swing.GroupLayout.PREFERRED_SIZE, 64, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(btnDataDiNascita, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addComponent(txtSaldoIniziale)) - .addGap(37, 37, 37) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(btnVersamento) - .addComponent(btnPrelievo) - .addComponent(btnListaMovimenti))) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(lblNome) - .addComponent(lblCognome) - .addComponent(lblCodiceFiscale)) - .addGap(26, 26, 26) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(txtNome, javax.swing.GroupLayout.PREFERRED_SIZE, 113, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(txtCodiceFiscale, javax.swing.GroupLayout.PREFERRED_SIZE, 115, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(txtCognome, javax.swing.GroupLayout.PREFERRED_SIZE, 113, javax.swing.GroupLayout.PREFERRED_SIZE))))) .addGroup(layout.createSequentialGroup() .addGap(99, 99, 99) .addComponent(btnAprireContoCorrente)) @@ -168,6 +149,38 @@ public class GUIMyBank extends javax.swing.JFrame { .addGap(56, 56, 56) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 272, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addGap(17, 17, 17) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(lblDataDiNascita) + .addComponent(lblSaldoIniziale)) + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addGroup(layout.createSequentialGroup() + .addComponent(txtDataDiNascita, javax.swing.GroupLayout.PREFERRED_SIZE, 64, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(btnDataDiNascita, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(txtSaldoIniziale))) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(lblNome) + .addComponent(lblCognome) + .addComponent(lblCodiceFiscale)) + .addGap(26, 26, 26) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(txtNome, javax.swing.GroupLayout.PREFERRED_SIZE, 113, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(txtCodiceFiscale, javax.swing.GroupLayout.PREFERRED_SIZE, 115, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(txtCognome, javax.swing.GroupLayout.PREFERRED_SIZE, 113, javax.swing.GroupLayout.PREFERRED_SIZE)))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 39, Short.MAX_VALUE) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(lblNumeroContoCorrente, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(btnVersamento) + .addComponent(btnPrelievo) + .addComponent(btnListaMovimenti) + .addComponent(txtNumeroContoCorrente)) + .addGap(23, 23, 23)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -175,41 +188,48 @@ public class GUIMyBank extends javax.swing.JFrame { .addGap(14, 14, 14) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(lblNome) - .addComponent(txtNome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(txtNome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lblNumeroContoCorrente)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(lblCognome) .addComponent(txtCognome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(btnVersamento)) + .addComponent(txtNumeroContoCorrente, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(lblCodiceFiscale) - .addComponent(txtCodiceFiscale, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(btnPrelievo)) - .addGap(18, 18, 18) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(lblDataDiNascita) - .addComponent(txtDataDiNascita, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(btnDataDiNascita) - .addComponent(btnListaMovimenti)) - .addGap(18, 18, 18) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(lblSaldoIniziale) - .addComponent(txtSaldoIniziale, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(lblCodiceFiscale) + .addComponent(txtCodiceFiscale, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(lblDataDiNascita) + .addComponent(txtDataDiNascita, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(btnDataDiNascita)) + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(lblSaldoIniziale) + .addComponent(txtSaldoIniziale, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addGroup(layout.createSequentialGroup() + .addComponent(btnVersamento) + .addGap(18, 18, 18) + .addComponent(btnPrelievo) + .addGap(18, 18, 18) + .addComponent(btnListaMovimenti))) .addGap(18, 18, 18) .addComponent(btnAprireContoCorrente) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 37, Short.MAX_VALUE) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap(9, Short.MAX_VALUE)) + .addGap(14, 14, 14)) ); pack(); }// //GEN-END:initComponents - private void btnListaMovimentiActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnListaMovimentiActionPerformed + private void btnListaMovimentiActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_btnListaMovimentiActionPerformed txtaListaMovimenti.setText(contoCorrente.getLogOperazioni()); txtaListaMovimenti.setVisible(true); - }//GEN-LAST:event_btnListaMovimentiActionPerformed + }// GEN-LAST:event_btnListaMovimentiActionPerformed private void txtNomeFocusGained(java.awt.event.FocusEvent evt) {// GEN-FIRST:event_txtNomeFocusGained txtNome.setBorder(borderOriginale); @@ -273,18 +293,20 @@ public class GUIMyBank extends javax.swing.JFrame { }// GEN-LAST:event_btnPrelievoActionPerformed private void btnAprireContoCorrenteActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_btnAprireContoCorrenteActionPerformed - String nome = txtNome.getText(); - String cognome = txtCognome.getText(); - String codiceFiscale = txtCodiceFiscale.getText(); - // String dataDiNascita = txtDataDiNascita.getText(); - String saldoIniziale = txtSaldoIniziale.getText(); + String nome = txtNome.getText().trim(); + String cognome = txtCognome.getText().trim(); + String codiceFiscale = txtCodiceFiscale.getText().trim().toUpperCase(); + String dataDiNascitaString = txtDataDiNascita.getText().trim(); + Date dataDiNascita; + String saldoInizialeString = txtSaldoIniziale.getText().trim(); + double saldoIniziale; boolean nomeEmpty = nome.isEmpty(); boolean cognomeEmpty = cognome.isEmpty(); boolean codiceFiscaleEmpty = codiceFiscale.isEmpty(); - // boolean dataDiNascitaEmpty = dataDiNascita.isEmpty(); - boolean saldoInizialeEmpty = saldoIniziale.isEmpty(); + boolean dataDiNascitaEmpty = dataDiNascitaString.isEmpty(); + boolean saldoInizialeEmpty = saldoInizialeString.isEmpty(); - if (nomeEmpty || cognomeEmpty || codiceFiscaleEmpty /* || dataDiNascitaEmpty */ || saldoInizialeEmpty) { + if (nomeEmpty || cognomeEmpty || codiceFiscaleEmpty || dataDiNascitaEmpty || saldoInizialeEmpty) { if (nomeEmpty) { txtNome.setBorder(new LineBorder(Color.red)); } @@ -294,11 +316,9 @@ public class GUIMyBank extends javax.swing.JFrame { if (codiceFiscaleEmpty) { txtCodiceFiscale.setBorder(new LineBorder(Color.red)); } - /* - * if(dataDiNascitaEmpty){ - * txtDataDiNascita.setBorder(new LineBorder(Color.red)); - * } - */ + if (dataDiNascitaEmpty) { + txtDataDiNascita.setBorder(new LineBorder(Color.red)); + } if (saldoInizialeEmpty) { txtSaldoIniziale.setBorder(new LineBorder(Color.red)); } @@ -306,23 +326,33 @@ public class GUIMyBank extends javax.swing.JFrame { return; } - if (isCodiceFiscaleValid(codiceFiscale)) { + if (MyBank.isCodiceFiscaleValid(codiceFiscale)) { JOptionPane.showMessageDialog(null, "Il codice fiscale non è valido."); txtCodiceFiscale.setBorder(new LineBorder(Color.red)); return; } - // TODO: gestione data - // if(dataDiNascita.isEmpty()){ - // dataDiNascitaError = true; - // } - if (!isNumeroValid(saldoIniziale)) { + + try { + dataDiNascita = MyBank.dataDiNascita(dataDiNascitaString); + } catch (ParseException _) { + JOptionPane.showMessageDialog(null, "La data di nascita non è valida."); + txtDataDiNascita.setBorder(new LineBorder(Color.red)); + return; + } + + try { + saldoIniziale = MyBank.valoreDouble(saldoInizialeString); + } catch (NumberFormatException _) { JOptionPane.showMessageDialog(null, "Il saldo iniziale non è valido."); txtSaldoIniziale.setBorder(new LineBorder(Color.red)); return; } - contoCorrente = new ContoCorrente(nome, cognome, codiceFiscale, Double.parseDouble(saldoIniziale)); + this.contoCorrenteAperto = MyBank.aggiungiConto(nome, cognome, codiceFiscale, dataDiNascita, saldoIniziale); + txtNumeroContoCorrente.setText(Integer.toString(MyBank.getConti().getLast().getNumeroContoCorrente())); + lblNumeroContoCorrente.setVisible(true); + txtNumeroContoCorrente.setVisible(true); btnVersamento.setVisible(true); btnPrelievo.setVisible(true); btnListaMovimenti.setVisible(true); @@ -336,29 +366,6 @@ public class GUIMyBank extends javax.swing.JFrame { }// GEN-LAST:event_btnAprireContoCorrenteActionPerformed - boolean isCodiceFiscaleValid(String codiceFiscale) { - Pattern pattern = Pattern.compile("[A-Z]{6}[ABCDEHLMPRST]{3}\\d{2}[A-Z]\\d{3}[A-Z]"); - - return !pattern.matcher(codiceFiscale).find(); - } - - boolean isNumeroValid(String numero) { - boolean isNumeroValid = true; - double valoreNumero; - - try { - valoreNumero = Double.parseDouble(numero); - - if (valoreNumero <= 0) { - isNumeroValid = false; - } - } catch (NumberFormatException _) { - isNumeroValid = false; - } - - return isNumeroValid; - } - /** * @param args the command line arguments */ @@ -399,11 +406,13 @@ public class GUIMyBank extends javax.swing.JFrame { private javax.swing.JLabel lblCognome; private javax.swing.JLabel lblDataDiNascita; private javax.swing.JLabel lblNome; + private javax.swing.JLabel lblNumeroContoCorrente; private javax.swing.JLabel lblSaldoIniziale; private javax.swing.JTextField txtCodiceFiscale; private javax.swing.JTextField txtCognome; private javax.swing.JTextField txtDataDiNascita; private javax.swing.JTextField txtNome; + private javax.swing.JTextField txtNumeroContoCorrente; private javax.swing.JTextField txtSaldoIniziale; private javax.swing.JTextArea txtaListaMovimenti; // End of variables declaration//GEN-END:variables diff --git a/src/logic/MyBank.java b/src/logic/MyBank.java index 6734e13..c08c20c 100644 --- a/src/logic/MyBank.java +++ b/src/logic/MyBank.java @@ -36,10 +36,14 @@ public class MyBank { static final String ERRORE_GENERICO = "Errore: opzione non valida."; static final String ERRORE_CONTI_VUOTO = "Errore: è necessario aggiungere almeno un conto corrente prima di proseguire."; static final String PATH_CONTI = "./src/logic/conti/"; + private static ArrayList conti = importaConti(); + + public static ArrayList getConti() { + return conti; + } public static void main(String[] args) { int scelta = -1; - ArrayList conti = importaConti(); do { System.out.println("Scegliere un'opzione:"); @@ -58,7 +62,6 @@ public class MyBank { case 0: break; case 1: - aggiungiConto(conti); System.out.println("Numero conto: " + conti.getLast().getNumeroContoCorrente()); System.out.println("Conto corrente aggiunto con successo."); pausa(); @@ -143,114 +146,56 @@ public class MyBank { return conti; } - static void aggiungiConto(ArrayList conti) { - String nome; - String cognome; - String codiceFiscale; - Date dataDiNascita; - double saldoIniziale; + public static ContoCorrente aggiungiConto(String nome, String cognome, String codiceFiscale, Date dataDiNascita, + double saldoIniziale) { int numeroContoCorrente; - boolean error; ContoCorrente contoCorrente; + boolean exit = false; + int i = 0; - do { - error = false; - System.out.print("Inserire il proprio nome: "); - nome = sc.nextLine().trim(); + numeroContoCorrente = Math.abs(codiceFiscale.hashCode()); - System.out.print("Inserire il proprio cognome: "); - cognome = sc.nextLine().trim(); - - codiceFiscale = codiceFiscale(); - - dataDiNascita = dataDiNascita(); - - saldoIniziale = quantita("del saldo iniziale"); - - numeroContoCorrente = Math.abs(codiceFiscale.hashCode()); - - if (ContoCorrente.getNumeriContiCorrenti().contains(numeroContoCorrente)) { - System.out.println("Errore: esiste già un conto corrente per questo codice fiscale, riprovare."); - pausa(); - error = true; - } else { - File percorsoConti = new File(PATH_CONTI); - if (!percorsoConti.exists()) { - percorsoConti.mkdir(); - } - contoCorrente = new ContoCorrente(nome, cognome, codiceFiscale, dataDiNascita, saldoIniziale, - numeroContoCorrente); - conti.add(contoCorrente); - salvaContoCorrente(contoCorrente); + if (ContoCorrente.getNumeriContiCorrenti().contains(numeroContoCorrente)) { + for (; i < conti.size() && exit; i++) { + exit = conti.get(i).getNumeroContoCorrente() == numeroContoCorrente; } - } while (error); + contoCorrente = conti.get(i); + } else { + File percorsoConti = new File(PATH_CONTI); + if (!percorsoConti.exists()) { + percorsoConti.mkdir(); + } + contoCorrente = new ContoCorrente(nome, cognome, codiceFiscale, dataDiNascita, saldoIniziale, + numeroContoCorrente); + conti.add(contoCorrente); + salvaContoCorrente(contoCorrente); + } + + return contoCorrente; } - static String codiceFiscale() { - String codiceFiscale; - boolean error; + public static boolean isCodiceFiscaleValid(String codiceFiscale) { Pattern pattern = Pattern.compile("[A-Z]{6}[ABCDEHLMPRST]{3}\\d{2}[A-Z]\\d{3}[A-Z]"); - Matcher matcher; - - do { - error = false; - System.out.print("Inserire il proprio codice fiscale: "); - codiceFiscale = sc.nextLine().trim().toUpperCase(); - matcher = pattern.matcher(codiceFiscale); - if (!matcher.find()) { - System.out.println(ERRORE_GENERICO); - pausa(); - error = true; - } - } while (error); - return codiceFiscale; + return pattern.matcher(codiceFiscale).find(); } - static Date dataDiNascita() { - Date dataDiNascita = null; - boolean error; + public static Date dataDiNascita(String dataDiNascita) throws ParseException { final String FORMATO_DATA = "dd/MM/yyyy"; SimpleDateFormat sdf = new SimpleDateFormat(FORMATO_DATA); sdf.setLenient(false); - - do { - error = false; - System.out.print("Inserire la propria data di nascita nel formato " + FORMATO_DATA + ": "); - try { - dataDiNascita = sdf.parse(sc.nextLine()); - } catch (ParseException _) { - System.out.println("Errore: la data inserita non è valida."); - pausa(); - error = true; - } - } while (error); - return dataDiNascita; + return sdf.parse(dataDiNascita); } - static double quantita(String diCheCosa) { - double quantita = 0; - boolean error; + public static double valoreDouble(String numeroDouble) throws NumberFormatException { + double valoreDouble; - do { - error = false; - System.out.print("Inserire la quantità " + diCheCosa + ": "); - try { - quantita = sc.nextDouble(); - sc.nextLine(); + valoreDouble = Double.parseDouble(numeroDouble); - if (quantita <= 0) { - System.out.println("Errore: la quantità non può essere minore o uguale a zero."); - pausa(); - error = true; - } - } catch (InputMismatchException _) { - System.out.println(ERRORE_GENERICO); - pausa(); - error = true; - } - } while (error); + if (valoreDouble <= 0) { + throw new NumberFormatException(); + } - return quantita; + return valoreDouble; } static void salvaContoCorrente(ContoCorrente conto) {