//This file generated automatically from the MARIUS LP system, please do not edit.

public class CuentaBancariaImpl implements CuentaBancaria {

    private String _numero,_titular;
    private double _saldo;
    public CuentaBancariaImpl(String n,String t) {
       _numero = n;
       _titular = t;
    }
    public void setSaldo(double s) { _saldo = s;}
    public String numero(){
       return _numero; 
    }
    public String titular(){
       return _titular;
    }
    public void ingresar(double monto ) throws CuentaBancariaMontoIncorrecto{
       DesignByContract.require(monto >0, new CuentaBancariaMontoIncorrecto("Monto Incorrecto, negativo o cero"));
       _saldo += monto;
    }
    public void extraer(double monto) 
        throws CuentaBancariaSaldoExcedido,CuentaBancariaMontoIncorrecto{
       DesignByContract.require(monto >0, new CuentaBancariaMontoIncorrecto("Monto Incorrecto, negativo o cero"));
       DesignByContract.require((_saldo-monto)>=0, new CuentaBancariaSaldoExcedido("El monto a extraer excede el saldo"));
        _saldo -= monto;
       DesignByContract.ensure(_saldo>=0, new CuentaBancariaSaldoExcedido("El saldo es negativo"));

    }
    public double saldoActual() { return _saldo; }

} //End of class CuentaBancariaImpl
