(Business rule) - Repeated sign

0

How do I make this business rule that prevents the user from registering an account with the same number and same agency?

Class main

public class Main {
public static void main(String[] args) {
    menu();
}

public static ContaBancariaBean gerarConta() {
    ContaBancariaBean e = new ContaBancariaBean();
    e.setNumero(JOptionPane.showInputDialog("Número: "));
    e.setAgencia(JOptionPane.showInputDialog("Agência: "));
    e.setLimite(new Integer(JOptionPane.showInputDialog("Limite: ")));
    e.setSaldo(new Integer(JOptionPane.showInputDialog("Saldo: ")));
    return e;

}


public static void cadastrar() {
    ContaBancariaBean conta = gerarConta();
    if (ContaBancariaDao.inserir(conta, null, null)) {
        JOptionPane.showMessageDialog(null, "Gravado Com Sucesso!");
    } else {
        JOptionPane.showMessageDialog(null, "Não foi possível Gravar!");
    }
}


      public static void menu() {
                String opcoes = "1-Cadastrar

                int op = 0;
                do {
                    op = new Integer(JOptionPane.showInputDialog(opcoes));
                    switch (op) {
                    case 1:
                        cadastrar();
                        break;

DAO Class

import javax.swing.JOptionPane;

public class ContaBancariaDao {

    private static final int QTDE = 10;
    private static ContaBancariaBean vetor[] = new ContaBancariaBean[QTDE];

    public static boolean inserir(ContaBancariaBean conta, String numero, String agencia) {
        for (ContaBancariaBean item : vetor) {
            if ((item != null) && (item.getNumero().equals(numero))
                    && (item.getAgencia().equals(agencia))) {
                JOptionPane.showMessageDialog(null, "Mesmo número ou Agência!");
                return false;
            } else {
                for (int i = 0; i < QTDE; i++) {
                    if (vetor[i] == null) {
                        vetor[i] = conta;
                        return true;
                    }
                }
            }
        }
        return false;
    }

    public static ContaBancariaBean pesquisa(String numero, String agencia) {
        for (ContaBancariaBean item : vetor) {
            if ((item != null) && (item.getNumero().equals(numero))
                    && (item.getAgencia().equals(agencia))) {
                return item;
            }
        }
        return null;
    }

BEAN Class

package modeloContaBancaria;

public class ContaBancariaBean {
    private String numero;
    private String agencia;
    private int saldo;
    private int limite;


    public String getNumero() {
        return numero;
    }
    public void setNumero(String numero) {
        this.numero = numero;
    }
    public String getAgencia() {
        return agencia;
    }
    public void setAgencia(String agencia) {
        this.agencia = agencia;
    }
    public int getSaldo() {
        return saldo;
    }
    public void setSaldo(int saldo) {
        this.saldo = saldo;
    }
    public int getLimite() {
        return limite;
    }
    public void setLimite(int limite) {
        this.limite = limite;
    }
    public String toString(){
        return "Número: "+getNumero()+"\n"+
               "Agência: "+ getAgencia()+"\n"+
               "Limite: " +getLimite()+"\n"+
               "Saldo: "+getSaldo()+"\n";
    }

    public String getDados(){
        return getNumero()+","+
               getAgencia()+","+
               getSaldo()+","+
               getLimite()+"\n";
    }


}
    
asked by anonymous 11.05.2015 / 17:33

2 answers

1

You can change the line that is thus ContaBancariaDao.inserir(conta, null, null) to something like ContaBancariaDao.inserir(conta, conta.getNumero(), conta.getAgencia()) . But the most appropriate would be to change the signature of the method in AccountBancariaDao or create a new method so public static boolean inserir(ContaBancariaBean conta) {...}

    
11.05.2015 / 20:19
1

Your code is correct. What is not is the way you work with parameters.

You can do this:

public class Main {
public static void main(String[] args) {
    menu();
}

public static ContaBancariaBean gerarConta() {
    ContaBancariaBean e = new ContaBancariaBean();
    e.setNumero(JOptionPane.showInputDialog("Número: "));
    e.setAgencia(JOptionPane.showInputDialog("Agência: "));
    e.setLimite(new Integer(JOptionPane.showInputDialog("Limite: ")));
    e.setSaldo(new Integer(JOptionPane.showInputDialog("Saldo: ")));
    return e;

}


public static void cadastrar() {
    ContaBancariaBean conta = gerarConta();
    if (ContaBancariaDao.inserir(conta, conta.getNumer(), conta.getAgencia())) {
        JOptionPane.showMessageDialog(null, "Gravado Com Sucesso!");
    } else {
        JOptionPane.showMessageDialog(null, "Não foi possível Gravar!");
    }
}

Note that since you do not pass the agency and number parameters for comparison, there will never be a true comparison of whether these values are repeated.

    
11.05.2015 / 20:16