Guest User

Untitled

a guest
Jun 18th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.32 KB | None | 0 0
  1.  
  2.  
  3. package labp2.lab11;
  4.  
  5. import java.util.ArrayList;
  6. import java.util.Calendar;
  7. import java.util.Iterator;
  8. import java.util.List;
  9.  
  10.  
  11. public class Agenda2 {
  12.  
  13. private ArrayList<Compromisso> compromissosAgendados;
  14. private ArrayList<Amigo> amigosAgendados;
  15.  
  16. /**
  17. * Construtor de Agenda1
  18. */
  19. public Agenda2() {
  20. compromissosAgendados = new ArrayList();
  21. amigosAgendados = new ArrayList();
  22. }
  23.  
  24. /**
  25. * Adiciona um compromisso, caso ele ainda nao exista
  26. * @param compromisso
  27. * @return boolean
  28. * @throws Exception
  29. */
  30. public boolean addCompromisso(Compromisso compromisso) {
  31. if (compromisso == null){
  32. throw new IllegalArgumentException ("Compromisso vazio.");
  33. }
  34. if (!compromissosAgendados.contains(compromisso)){
  35. compromissosAgendados.add(compromisso);
  36. return true;
  37. }
  38. return false;
  39. }
  40.  
  41. /**
  42. * Cancela um compromisso, caso ele esteja confirmado
  43. * @param compromisso
  44. * @return boolean
  45. * @throws Exception
  46. */
  47.  
  48. public boolean cancelaCompromisso(Compromisso compromisso) {
  49. if(!compromissosAgendados.contains(compromisso)){
  50. throw new IllegalArgumentException("Este compromisso não existe!");
  51. }
  52. if(compromisso == null){
  53. throw new IllegalArgumentException("Compromisso vazio.");
  54. }
  55. compromisso.setEstado(Estado.CANCELADO);
  56. return true;
  57. }
  58.  
  59. /**
  60. * Confirma um compromisso
  61. * @param compromisso
  62. * @return boolean
  63. * @throws Exception
  64. */
  65. public boolean confirmaCompromisso(Compromisso compromisso) throws Exception{
  66. if(compromisso == null){
  67. throw new IllegalArgumentException("Compromisso vazio.");
  68. }
  69. if(!compromissosAgendados.contains(compromisso)){
  70. throw new Exception("Este compromisso não existe!");
  71. }
  72. if(compromisso.getEstado().equals(Estado.CONFIRMADO)){
  73. return false;
  74. }
  75. compromisso.setEstado(Estado.CONFIRMADO);
  76. return true;
  77. }
  78.  
  79. /**
  80. * Lista todos os compromissos da agenda
  81. * @param estado
  82. * @return ArrayList
  83. */
  84. public ArrayList<Compromisso> listaCompromissos(Estado estado) {
  85. if (estado == null) {
  86. throw new IllegalArgumentException("Estado vazio.");
  87. }
  88. sortCompromisso();
  89. ArrayList<Compromisso> lista = new ArrayList<Compromisso>();
  90. for (int i = 0; i < compromissosAgendados.size(); i++){
  91. if (compromissosAgendados.get(i).getEstado().equals(estado)){
  92. lista.add(compromissosAgendados.get(i));
  93. }
  94. }
  95. return lista;
  96. }
  97.  
  98. private void sortCompromisso(){
  99. Compromisso[] compromissosOrdenados = new Compromisso[compromissosAgendados.size()];
  100.  
  101. for (int i = 0; i < compromissosAgendados.size(); i++){
  102. compromissosOrdenados[i] = compromissosAgendados.get(i);
  103. }
  104.  
  105.  
  106. for (int i = 0; i < compromissosOrdenados.length-1; i++){
  107. for (int j = i+1; j < compromissosOrdenados.length; j++){
  108.  
  109. if (compromissosOrdenados[i].getData().get(Calendar.DAY_OF_YEAR) > ((compromissosOrdenados[j].getData().get(Calendar.DAY_OF_YEAR)))){
  110. Compromisso temporario = compromissosOrdenados[i];
  111. compromissosOrdenados[i] = compromissosOrdenados[j];
  112. compromissosOrdenados[j] = temporario;
  113. }
  114. }
  115. }
  116.  
  117. ArrayList<Compromisso> lista = new ArrayList<Compromisso>();
  118. for (int i = 0; i < compromissosOrdenados.length; i++){
  119. lista.add(compromissosOrdenados[i]);
  120.  
  121. }
  122.  
  123. compromissosAgendados = lista;
  124. }
  125.  
  126. public Compromisso takeCompromisso(){
  127. sortCompromisso();
  128. for (int i = 0; i < compromissosAgendados.size(); i++){
  129. if(compromissosAgendados.get(i).getEstado().equals(Estado.CONFIRMADO))
  130. return compromissosAgendados.remove(i);
  131. }
  132. return null;
  133. }
  134.  
  135.  
  136. /**
  137. * AMIGOS
  138. * @param amigo
  139. * @return
  140. */
  141.  
  142.  
  143. public boolean addAmigo(Amigo amigo) {
  144. if(amigo == null){
  145. throw new IllegalArgumentException("Amigo nulo.");
  146. }
  147. if (!amigosAgendados.contains(amigo)){
  148. amigosAgendados.add(amigo);
  149. return true;
  150. }
  151. return false;
  152. }
  153.  
  154. public boolean removeAmigo(Amigo amigo) {
  155. if(amigo == null){
  156. throw new IllegalArgumentException("Amigo nulo.");
  157. }
  158. if(!amigosAgendados.contains(amigo)){
  159. return false;
  160. }
  161. amigosAgendados.remove(amigo);
  162. return true;
  163. }
  164.  
  165. private void sortAmigo(){
  166. Amigo[] amigosOrdenados = new Amigo[amigosAgendados.size()];
  167.  
  168. for (int i = 0; i < amigosAgendados.size(); i++){
  169. amigosOrdenados[i] = amigosAgendados.get(i);
  170. }
  171. for (int i = 0; i < amigosOrdenados.length-1; i++) {
  172. for (int j = 0; j < amigosOrdenados.length-i-1; j++) {
  173.  
  174. if (amigosOrdenados[j].getAniversario().after(amigosOrdenados[j+1].getAniversario())) {
  175. Amigo tmp = amigosOrdenados[j];
  176. amigosOrdenados[j] = amigosOrdenados[j+1];
  177. amigosOrdenados[j+1] = tmp;
  178. }
  179. }
  180. }
  181. ArrayList<Amigo> lista = new ArrayList<Amigo>();
  182. for (int i = 0; i < amigosOrdenados.length; i++){
  183. lista.add(amigosOrdenados[i]);
  184. }
  185. amigosAgendados = lista;
  186. }
  187.  
  188. public List<Amigo> listaAniversariantes() {
  189. sortAmigo();
  190. return amigosAgendados;
  191. }
  192. public List<Amigo> listaAniversariantesDoMes(int mes) {
  193. if((mes > 12) || (mes < 1)){
  194. throw new IllegalArgumentException("Mes invalido");
  195. }
  196. sortAmigo();
  197. ArrayList<Amigo> amigosAgendados = new ArrayList<Amigo>();
  198. for (int i = 0; i < amigosAgendados.size(); i++){
  199. if (amigosAgendados.get(i).getAniversario().get(Calendar.MONTH) == (mes-1)){
  200. amigosAgendados.add(amigosAgendados.get(i));
  201. }
  202. }
  203. return amigosAgendados;
  204. }
  205.  
  206. }
Add Comment
Please, Sign In to add comment