Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package labp2.lab11;
- import java.util.ArrayList;
- import java.util.Calendar;
- import java.util.Iterator;
- import java.util.List;
- public class Agenda2 {
- private ArrayList<Compromisso> compromissosAgendados;
- private ArrayList<Amigo> amigosAgendados;
- /**
- * Construtor de Agenda1
- */
- public Agenda2() {
- compromissosAgendados = new ArrayList();
- amigosAgendados = new ArrayList();
- }
- /**
- * Adiciona um compromisso, caso ele ainda nao exista
- * @param compromisso
- * @return boolean
- * @throws Exception
- */
- public boolean addCompromisso(Compromisso compromisso) {
- if (compromisso == null){
- throw new IllegalArgumentException ("Compromisso vazio.");
- }
- if (!compromissosAgendados.contains(compromisso)){
- compromissosAgendados.add(compromisso);
- return true;
- }
- return false;
- }
- /**
- * Cancela um compromisso, caso ele esteja confirmado
- * @param compromisso
- * @return boolean
- * @throws Exception
- */
- public boolean cancelaCompromisso(Compromisso compromisso) {
- if(!compromissosAgendados.contains(compromisso)){
- throw new IllegalArgumentException("Este compromisso não existe!");
- }
- if(compromisso == null){
- throw new IllegalArgumentException("Compromisso vazio.");
- }
- compromisso.setEstado(Estado.CANCELADO);
- return true;
- }
- /**
- * Confirma um compromisso
- * @param compromisso
- * @return boolean
- * @throws Exception
- */
- public boolean confirmaCompromisso(Compromisso compromisso) throws Exception{
- if(compromisso == null){
- throw new IllegalArgumentException("Compromisso vazio.");
- }
- if(!compromissosAgendados.contains(compromisso)){
- throw new Exception("Este compromisso não existe!");
- }
- if(compromisso.getEstado().equals(Estado.CONFIRMADO)){
- return false;
- }
- compromisso.setEstado(Estado.CONFIRMADO);
- return true;
- }
- /**
- * Lista todos os compromissos da agenda
- * @param estado
- * @return ArrayList
- */
- public ArrayList<Compromisso> listaCompromissos(Estado estado) {
- if (estado == null) {
- throw new IllegalArgumentException("Estado vazio.");
- }
- sortCompromisso();
- ArrayList<Compromisso> lista = new ArrayList<Compromisso>();
- for (int i = 0; i < compromissosAgendados.size(); i++){
- if (compromissosAgendados.get(i).getEstado().equals(estado)){
- lista.add(compromissosAgendados.get(i));
- }
- }
- return lista;
- }
- private void sortCompromisso(){
- Compromisso[] compromissosOrdenados = new Compromisso[compromissosAgendados.size()];
- for (int i = 0; i < compromissosAgendados.size(); i++){
- compromissosOrdenados[i] = compromissosAgendados.get(i);
- }
- for (int i = 0; i < compromissosOrdenados.length-1; i++){
- for (int j = i+1; j < compromissosOrdenados.length; j++){
- if (compromissosOrdenados[i].getData().get(Calendar.DAY_OF_YEAR) > ((compromissosOrdenados[j].getData().get(Calendar.DAY_OF_YEAR)))){
- Compromisso temporario = compromissosOrdenados[i];
- compromissosOrdenados[i] = compromissosOrdenados[j];
- compromissosOrdenados[j] = temporario;
- }
- }
- }
- ArrayList<Compromisso> lista = new ArrayList<Compromisso>();
- for (int i = 0; i < compromissosOrdenados.length; i++){
- lista.add(compromissosOrdenados[i]);
- }
- compromissosAgendados = lista;
- }
- public Compromisso takeCompromisso(){
- sortCompromisso();
- for (int i = 0; i < compromissosAgendados.size(); i++){
- if(compromissosAgendados.get(i).getEstado().equals(Estado.CONFIRMADO))
- return compromissosAgendados.remove(i);
- }
- return null;
- }
- /**
- * AMIGOS
- * @param amigo
- * @return
- */
- public boolean addAmigo(Amigo amigo) {
- if(amigo == null){
- throw new IllegalArgumentException("Amigo nulo.");
- }
- if (!amigosAgendados.contains(amigo)){
- amigosAgendados.add(amigo);
- return true;
- }
- return false;
- }
- public boolean removeAmigo(Amigo amigo) {
- if(amigo == null){
- throw new IllegalArgumentException("Amigo nulo.");
- }
- if(!amigosAgendados.contains(amigo)){
- return false;
- }
- amigosAgendados.remove(amigo);
- return true;
- }
- private void sortAmigo(){
- Amigo[] amigosOrdenados = new Amigo[amigosAgendados.size()];
- for (int i = 0; i < amigosAgendados.size(); i++){
- amigosOrdenados[i] = amigosAgendados.get(i);
- }
- for (int i = 0; i < amigosOrdenados.length-1; i++) {
- for (int j = 0; j < amigosOrdenados.length-i-1; j++) {
- if (amigosOrdenados[j].getAniversario().after(amigosOrdenados[j+1].getAniversario())) {
- Amigo tmp = amigosOrdenados[j];
- amigosOrdenados[j] = amigosOrdenados[j+1];
- amigosOrdenados[j+1] = tmp;
- }
- }
- }
- ArrayList<Amigo> lista = new ArrayList<Amigo>();
- for (int i = 0; i < amigosOrdenados.length; i++){
- lista.add(amigosOrdenados[i]);
- }
- amigosAgendados = lista;
- }
- public List<Amigo> listaAniversariantes() {
- sortAmigo();
- return amigosAgendados;
- }
- public List<Amigo> listaAniversariantesDoMes(int mes) {
- if((mes > 12) || (mes < 1)){
- throw new IllegalArgumentException("Mes invalido");
- }
- sortAmigo();
- ArrayList<Amigo> amigosAgendados = new ArrayList<Amigo>();
- for (int i = 0; i < amigosAgendados.size(); i++){
- if (amigosAgendados.get(i).getAniversario().get(Calendar.MONTH) == (mes-1)){
- amigosAgendados.add(amigosAgendados.get(i));
- }
- }
- return amigosAgendados;
- }
- }
Add Comment
Please, Sign In to add comment