Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Adrian
/
EjemploDAE2020
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
ff60b127
authored
Nov 08, 2020
by
Adrian
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Versión ampliada pre JPA
parent
2fa644aa
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
192 additions
and
18 deletions
pom.xml
src/main/java/es/ujaen/dae/ujacoin/beans/ServicioUjaBankImpl.java
src/main/java/es/ujaen/dae/ujacoin/entidades/Cliente.java
src/main/java/es/ujaen/dae/ujacoin/entidades/Cuenta.java
src/main/java/es/ujaen/dae/ujacoin/entidades/ServicioBancario.java
src/main/java/es/ujaen/dae/ujacoin/entidades/Tarjeta.java
src/main/java/es/ujaen/dae/ujacoin/excepciones/SaldoRestanteNoCero.java
src/main/java/es/ujaen/dae/ujacoin/excepciones/TarjetaYaVinculada.java
src/main/java/es/ujaen/dae/ujacoin/interfaces/ServicioUjaBank.java
pom.xml
View file @
ff60b127
src/main/java/es/ujaen/dae/ujacoin/beans/ServicioUjaBankImpl.java
View file @
ff60b127
...
@@ -8,6 +8,7 @@ package es.ujaen.dae.ujacoin.beans;
...
@@ -8,6 +8,7 @@ package es.ujaen.dae.ujacoin.beans;
import
es.ujaen.dae.ujacoin.entidades.Cliente
;
import
es.ujaen.dae.ujacoin.entidades.Cliente
;
import
es.ujaen.dae.ujacoin.entidades.Cuenta
;
import
es.ujaen.dae.ujacoin.entidades.Cuenta
;
import
es.ujaen.dae.ujacoin.entidades.Tarjeta
;
import
es.ujaen.dae.ujacoin.entidades.Tarjeta
;
import
es.ujaen.dae.ujacoin.excepciones.SaldoRestanteNoCero
;
import
es.ujaen.dae.ujacoin.interfaces.ServicioUjaBank
;
import
es.ujaen.dae.ujacoin.interfaces.ServicioUjaBank
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.HashMap
;
...
@@ -48,9 +49,6 @@ public class ServicioUjaBankImpl implements ServicioUjaBank {
...
@@ -48,9 +49,6 @@ public class ServicioUjaBankImpl implements ServicioUjaBank {
clientes
.
put
(
cliente
.
getDni
(),
cliente
);
clientes
.
put
(
cliente
.
getDni
(),
cliente
);
cuentas
.
put
(
cuentaNueva
.
getNumero
(),
cuentaNueva
);
cuentas
.
put
(
cuentaNueva
.
getNumero
(),
cuentaNueva
);
cuentaNueva
.
setTitular
(
cliente
);
cliente
.
asignarCuenta
(
cuentaNueva
);
}
}
@Override
@Override
...
@@ -91,6 +89,44 @@ public class ServicioUjaBankImpl implements ServicioUjaBank {
...
@@ -91,6 +89,44 @@ public class ServicioUjaBankImpl implements ServicioUjaBank {
cuentaDestino
.
transferenciaDesde
(
cuentaOrigen
,
importe
);
cuentaDestino
.
transferenciaDesde
(
cuentaOrigen
,
importe
);
}
}
@Override
public
Cuenta
a
ñ
adirCuenta
(
Cliente
cliente
)
{
Cuenta
cuentaNueva
=
new
Cuenta
(
generadorCuentasNuevas
(),
cliente
);
cliente
.
asignarCuenta
(
cuentaNueva
);
cuentas
.
put
(
cuentaNueva
.
getNumero
(),
cuentaNueva
);
return
cuentaNueva
;
}
@Override
public
void
a
ñ
adirTarjeta
(
Cliente
cliente
,
Tarjeta
tarjeta
)
{
//Tarjeta nuevaTarjeta = new Tarjeta(, cliente.getNombre(), String.valueOf(rand.nextInt(999)), LocalDate.now());
cliente
.
a
ñ
adirTarjeta
(
tarjeta
);
tarjeta
.
setClienteAsociado
(
cliente
);
tarjeta
.
setActivado
(
true
);
}
@Override
public
void
borrarCuenta
(
Cuenta
cuenta
)
{
if
(
cuenta
.
getSaldo
()
>
0
)
{
throw
new
SaldoRestanteNoCero
();
}
cuenta
.
setActivado
(
false
);
}
@Override
public
void
borrarTarjeta
(
Tarjeta
tarjeta
)
{
throw
new
UnsupportedOperationException
(
"Not supported yet."
);
//To change body of generated methods, choose Tools | Templates.
}
private
String
generadorCuentasNuevas
()
{
private
String
generadorCuentasNuevas
()
{
boolean
numeroValido
=
false
;
boolean
numeroValido
=
false
;
...
...
src/main/java/es/ujaen/dae/ujacoin/entidades/Cliente.java
View file @
ff60b127
...
@@ -5,6 +5,7 @@
...
@@ -5,6 +5,7 @@
*/
*/
package
es
.
ujaen
.
dae
.
ujacoin
.
entidades
;
package
es
.
ujaen
.
dae
.
ujacoin
.
entidades
;
import
es.ujaen.dae.ujacoin.excepciones.TarjetaYaVinculada
;
import
java.time.LocalDate
;
import
java.time.LocalDate
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -108,6 +109,14 @@ public class Cliente {
...
@@ -108,6 +109,14 @@ public class Cliente {
* @param tarjeta
* @param tarjeta
*/
*/
public
void
a
ñ
adirTarjeta
(
Tarjeta
tarjeta
)
{
public
void
a
ñ
adirTarjeta
(
Tarjeta
tarjeta
)
{
if
(
tarjetasAsociadas
.
get
(
tarjeta
.
getNumero
())
!=
null
&&
tarjetasAsociadas
.
get
(
tarjeta
.
getNumero
()).
getCvc
().
equals
(
tarjeta
.
getCvc
())){
throw
new
TarjetaYaVinculada
();
}
tarjetasAsociadas
.
put
(
tarjeta
.
getNumero
(),
tarjeta
);
tarjetasAsociadas
.
put
(
tarjeta
.
getNumero
(),
tarjeta
);
}
}
...
...
src/main/java/es/ujaen/dae/ujacoin/entidades/Cuenta.java
View file @
ff60b127
...
@@ -16,7 +16,7 @@ import java.util.ArrayList;
...
@@ -16,7 +16,7 @@ import java.util.ArrayList;
*
*
* @author Adrian
* @author Adrian
*/
*/
public
class
Cuenta
{
public
class
Cuenta
extends
ServicioBancario
{
/**
/**
* Número de identificación de la cuenta
* Número de identificación de la cuenta
...
@@ -27,10 +27,6 @@ public class Cuenta {
...
@@ -27,10 +27,6 @@ public class Cuenta {
*/
*/
private
float
saldo
;
private
float
saldo
;
/**
/**
* Titular de la cuenta
*/
private
Cliente
titular
;
/**
* Movimientos de la cuenta
* Movimientos de la cuenta
*/
*/
private
ArrayList
<
Movimiento
>
movimientos
;
private
ArrayList
<
Movimiento
>
movimientos
;
...
@@ -43,7 +39,8 @@ public class Cuenta {
...
@@ -43,7 +39,8 @@ public class Cuenta {
this
.
numero
=
numero
;
this
.
numero
=
numero
;
this
.
saldo
=
0
;
this
.
saldo
=
0
;
this
.
titular
=
titular
;
this
.
activado
=
true
;
this
.
clienteAsociado
=
titular
;
this
.
movimientos
=
new
ArrayList
<>();
this
.
movimientos
=
new
ArrayList
<>();
}
}
...
@@ -55,18 +52,10 @@ public class Cuenta {
...
@@ -55,18 +52,10 @@ public class Cuenta {
return
saldo
;
return
saldo
;
}
}
public
Cliente
getTitular
()
{
return
titular
;
}
public
void
setSaldo
(
float
saldo
)
{
public
void
setSaldo
(
float
saldo
)
{
this
.
saldo
=
saldo
;
this
.
saldo
=
saldo
;
}
}
public
void
setTitular
(
Cliente
titular
)
{
this
.
titular
=
titular
;
}
public
ArrayList
<
Movimiento
>
getMovimientos
()
{
public
ArrayList
<
Movimiento
>
getMovimientos
()
{
return
movimientos
;
return
movimientos
;
}
}
...
...
src/main/java/es/ujaen/dae/ujacoin/entidades/ServicioBancario.java
0 → 100644
View file @
ff60b127
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package
es
.
ujaen
.
dae
.
ujacoin
.
entidades
;
/**
*
* @author UJA
*/
public
class
ServicioBancario
{
public
ServicioBancario
()
{
}
//Servicio marcado como borrado
boolean
activado
;
Cliente
clienteAsociado
;
public
boolean
isActivado
()
{
return
activado
;
}
public
void
setActivado
(
boolean
activado
)
{
this
.
activado
=
activado
;
}
public
Cliente
getClienteAsociado
()
{
return
clienteAsociado
;
}
public
void
setClienteAsociado
(
Cliente
clienteAsociado
)
{
this
.
clienteAsociado
=
clienteAsociado
;
}
}
src/main/java/es/ujaen/dae/ujacoin/entidades/Tarjeta.java
View file @
ff60b127
...
@@ -7,12 +7,13 @@ package es.ujaen.dae.ujacoin.entidades;
...
@@ -7,12 +7,13 @@ package es.ujaen.dae.ujacoin.entidades;
import
es.ujaen.dae.ujacoin.excepciones.TarjetaNoValida
;
import
es.ujaen.dae.ujacoin.excepciones.TarjetaNoValida
;
import
java.time.LocalDate
;
import
java.time.LocalDate
;
import
java.util.Random
;
/**Tarjetas de crédito asociadas a clientes
/**Tarjetas de crédito asociadas a clientes
*
*
* @author Adrian
* @author Adrian
*/
*/
public
class
Tarjeta
{
public
class
Tarjeta
extends
ServicioBancario
{
/** Número de la tarjeta*/
/** Número de la tarjeta*/
private
String
numero
;
private
String
numero
;
...
@@ -23,6 +24,9 @@ public class Tarjeta {
...
@@ -23,6 +24,9 @@ public class Tarjeta {
/** Fecha de caducidad de la tarjeta*/
/** Fecha de caducidad de la tarjeta*/
private
LocalDate
fechaCaducidad
;
private
LocalDate
fechaCaducidad
;
private
static
Random
rand
=
new
Random
();
public
Tarjeta
(
String
numero
,
String
titular
,
String
cvc
,
LocalDate
fechaCaducidad
)
{
public
Tarjeta
(
String
numero
,
String
titular
,
String
cvc
,
LocalDate
fechaCaducidad
)
{
if
(!
checkNumeroTarjeta
(
numero
))
throw
new
TarjetaNoValida
();
if
(!
checkNumeroTarjeta
(
numero
))
throw
new
TarjetaNoValida
();
...
@@ -76,4 +80,43 @@ public class Tarjeta {
...
@@ -76,4 +80,43 @@ public class Tarjeta {
}
}
public
static
String
generadorTarjetasNuevas
()
{
boolean
numeroValido
=
false
;
String
numeroCadena
;
do
{
int
numero
=
rand
.
nextInt
(
99999999
);
numeroCadena
=
String
.
valueOf
(
numero
);
for
(
int
i
=
numeroCadena
.
length
();
i
<
8
;
i
++)
{
numeroCadena
=
"0"
.
concat
(
numeroCadena
);
}
int
codigo
=
0
;
for
(
int
i
=
0
;
i
<
8
;
i
++)
{
codigo
+=
Integer
.
parseInt
(
numeroCadena
.
substring
(
i
,
i
+
1
));
}
codigo
=
codigo
%
4
;
if
((
numero
%
10
)
>
5
)
{
numero
-=
codigo
;
}
else
{
numero
+=
4
-
codigo
;
}
numeroCadena
=
String
.
valueOf
(
numero
);
for
(
int
i
=
numeroCadena
.
length
();
i
<
8
;
i
++)
{
numeroCadena
=
"0"
.
concat
(
numeroCadena
);
}
}
while
(!
numeroValido
);
return
numeroCadena
;
}
}
}
src/main/java/es/ujaen/dae/ujacoin/excepciones/SaldoRestanteNoCero.java
0 → 100644
View file @
ff60b127
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package
es
.
ujaen
.
dae
.
ujacoin
.
excepciones
;
/**
*
* @author UJA
*/
public
class
SaldoRestanteNoCero
extends
RuntimeException
{
}
src/main/java/es/ujaen/dae/ujacoin/excepciones/TarjetaYaVinculada.java
0 → 100644
View file @
ff60b127
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package
es
.
ujaen
.
dae
.
ujacoin
.
excepciones
;
/**
*
* @author Adrian
*/
public
class
TarjetaYaVinculada
extends
RuntimeException
{
}
src/main/java/es/ujaen/dae/ujacoin/interfaces/ServicioUjaBank.java
View file @
ff60b127
...
@@ -75,5 +75,32 @@ public interface ServicioUjaBank {
...
@@ -75,5 +75,32 @@ public interface ServicioUjaBank {
*/
*/
public
void
transferencia
(
Cuenta
cuentaOrigen
,
Cuenta
cuentaDestino
,
float
importe
);
public
void
transferencia
(
Cuenta
cuentaOrigen
,
Cuenta
cuentaDestino
,
float
importe
);
/**
* Genera una cuenta nueva para el cliente y la devuelve
* @param cliente Cliente al que se le asignara la nueva cuenta
* @return la cuenta recién creada
*/
public
Cuenta
a
ñ
adirCuenta
(
Cliente
cliente
);
/**
* Genera una tarjeta nueva para el cliente y la devuelve
* @param cliente Cliente al que se le asignara la nueva cuenta
* @param tarjeta tarjeta para vincular al clente
*/
public
void
a
ñ
adirTarjeta
(
Cliente
cliente
,
Tarjeta
tarjeta
);
/**
* Borra una cuenta con saldo = 0
* @param cuenta cuenta a borrar
*/
public
void
borrarCuenta
(
Cuenta
cuenta
);
/**
* Borra una tarjeta
* @param tarjeta tarjeta a borrar
*/
public
void
borrarTarjeta
(
Tarjeta
tarjeta
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment