A
classe
principal
desse
sistema
e
que
oferece
as
suas
funcionalidades
principais
a
classe
SistemaAmigo,
que
guarda
a
lista
de
amigos
participantes
da
brincadeira
e
tambm
as
mensagens
trocadas
entre
os
participantes.
Mensagem
uma
classe
abstrata
e
que
apresenta
apenas
um
mtodo
abstrato
getTextoCompletoAExibir(), alm
de
outros
mtodos
concretos
mostrados
no
diagrama.
MensagemParaTodos
e
MensagemParaAlguem
so
subclasses
de
Mensagem
e
cada
uma
apresenta
uma
implementao
prpria
do
mtodo
abstrato.
Cada
mensagem
pode
ser
annima
ou
no
dependendo
do
valor
da
varivel
booleana
anonima
passada
no
seu
construtor.
Na
classe
MensagemParaAlguem
o
mtodo
getTextoCompletoAExibir
retorna
uma
mensagem
no
estilo
Mensagem
para
fulano@email.com.
Texto:
Texto
da
mensagem
ou
Mensagem
de:
sicrano@email.com
para
fulano@email.com.
Texto:
Texto
da
mensagem
caso
a
mensagem
no
seja
annima.
Na
classe
MensagemParaTodos
este
mtodo
retorna
uma
mensagem
no
estilo
Mensagem
para
todos.
Texto:
Texto
da
mensagem
ou
Mensagem
de
sicrano@email.com
para
todos.
Texto:
Texto
da
mensagem
caso
a
mensagem
no
seja
annima.
1
(3.0).
Fornea
o
cdigo
para
as
classes
Mensagem
e
MensagemParaAlguem.
Observe
o
formato
do
texto
da
mensagem
conforme
exemplo
acima.
2.(3.0)
Fornea
o
cdigo
para
os
seguintes
mtodos
da
classe
SistemaAmigo:
public List<Mensagem> pesquisaMensagensAnonimas(){ {}
//Mtodo
que
pesquisa
as
mensagens
que
so
annimas
e
retorna
uma
lista
com
tais
mensagens.
public void configuraAmigoSecretoDe(String emailDaPessoa, String emailAmigoSorteado)
throws AmigoInexistenteException{}
//
Mtodo
que
configura
o
amigo
secreto
sorteado
para
a
pessoa
cujo
e-mail
emailDaPessoa,
atribuindo-lhe
seu
//
amigo
secreto
como
sendo
a
pessoa
de
e-mail
emailAmigoSecreto.
Caso
no
exista
pessoa
cadastrada
no
sistema
//
com
o
e-mail
emailDaPessoa,
deve
ser
lanada
a
exceo
AmigoInexistenteException.
3.(4.0)
Crie
um
mtodo
main
que
execute
os
seguintes
passos
nesse
sistema
a
partir
da
classe
SistemaAmigo:
a)
Cadastre
dois
amigos
Jos
e
Maria
com
seus
e-mails.
b)
Configure
o
amigo
secreto
de
Jos
como
sendo
Maria
e
o
amigo
secreto
de
Maria
como
sendo
Jos.
Obs:
Lembre
de
tratar
a
exceo
que
pode
ser
lanada.
c)
Envie
uma
mensagem
annima
de
Maria
para
Jos.
d)
Envie
uma
mensagem
annima
de
Maria
para
todos.
e)
Pesquise
as
mensagens
annimas
e
imprima
o
texto
completo
dessas
mensagens
atravs
do
mtodo
getTextoCompletoAExibir.
f)
Pesquise
o
e-mail
do
amigo
secreto
de
Jos
e
veja
se
o
e-mail
de
Maria,
imprimindo
Ok
caso
seja.
A
classe
principal
desse
sistema
e
que
oferece
as
suas
funcionalidades
principais
a
classe
SistemaAmigo,
que
guarda
a
lista
de
amigos
participantes
da
brincadeira
e
tambm
as
mensagens
trocadas
entre
os
participantes.
Mensagem
uma
classe
abstrata
e
que
apresenta
apenas
um
mtodo
abstrato
getTextoCompletoAExibir(), alm
de
outros
mtodos
concretos
mostrados
no
diagrama.
MensagemParaTodos
e
MensagemParaAlguem
so
subclasses
de
Mensagem
e
cada
uma
apresenta
uma
implementao
prpria
do
mtodo
abstrato.
Cada
mensagem
pode
ser
annima
ou
no
dependendo
do
valor
da
varivel
booleana
anonima
passada
no
seu
construtor.
Na
classe
MensagemParaAlguem
o
mtodo
getTextoCompletoAExibir
retorna
uma
mensagem
no
estilo
Mensagem
para
fulano@email.com.
Texto:
Texto
da
mensagem
ou
Mensagem
de:
sicrano@email.com
para
fulano@email.com.
Texto:
Texto
da
mensagem
caso
a
mensagem
no
seja
annima.
Na
classe
MensagemParaTodos
este
mtodo
retorna
uma
mensagem
no
estilo
Mensagem
para
todos.
Texto:
Texto
da
mensagem
ou
Mensagem
de
sicrano@email.com
para
todos.
Texto:
Texto
da
mensagem
caso
a
mensagem
no
seja
annima.
1
(3.0).
Fornea
o
cdigo
para
as
classes
Mensagem
e
MensagemParaAlguem.
Observe
o
formato
do
texto
da
mensagem
conforme
exemplo
acima.
2.(3.0)
Fornea
o
cdigo
para
os
seguintes
mtodos
da
classe
SistemaAmigo:
public List<Mensagem> pesquisaTodasAsMensagens(){
//
Mtodo
que
pesquisa
o
e-mail
do
amigo
secreto
sorteado
para
a
pessoa
cujo
e-mail
emailDaPessoa
//
Caso
no
exista
pessoa
cadastrada
no
sistema
com
o
e-mail
emailDaPessoa,
deve
ser
lanada
a
exceo
//
AmigoInexistenteException.
Caso
exista
a
pessoa
com
esse
e-mail,
mas
o
seu
amigo
secreto
sorteado
//
ainda
no
tenha
sido
configurado
(o
e-mail
do
amigo
sorteado
null),
deve
ser
lanada
a
exceo
//
AmigoNaoSorteadoException.
3.(4.0)
Crie
um
mtodo
main
que
execute
os
seguintes
passos
nesse
sistema
a
partir
da
classe
SistemaAmigo:
a)
Cadastre
dois
amigos
Lcia
e
Ftima
com
seus
e-mails.
b)
Configure
o
amigo
secreto
de
Lcia
como
sendo
Ftima
e
o
amigo
secreto
de
Ftima
como
sendo
Lcia.
Obs:
Lembre
de
tratar
a
exceo
que
pode
ser
lanada.
c)
Envie
uma
mensagem
no
annima
de
Lcia
para
todos.
d)
Envie
uma
mensagem
annima
de
Lcia
para
Ftima.
e)
Pesquise
todas
as
mensagens
e
imprima
o
texto
completo
dessas
mensagens
atravs
do
mtodo
getTextoCompletoAExibir.
f)
Pesquise
o
e-mail
do
amigo
secreto
de
Ftima
e
veja
se
o
e-mail
de
Lcia,
imprimindo
Ok
caso
seja.
Obs:
Lembre
de
tratar
as
excees.