Coverage Report - net.sf.webphotos.util.legacy.ComandoFTP
 
Classes in this File Line Coverage Branch Coverage Complexity
ComandoFTP
92%
26/28
100%
16/16
2,75
 
 1  
 /**
 2  
  * Copyright 2008 WebPhotos
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *      http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 package net.sf.webphotos.util.legacy;
 17  
 
 18  
 /**
 19  
  * Cria um comando de FTP.
 20  
  * Comando esse armazenado posteriormente no {@link net.sf.webphotos.util.CacheFTP CacheFTP}.
 21  
  *
 22  
  * UPLOAD=1 DOWNLOAD=2 DELETE=3;
 23  
  */
 24  381
 public class ComandoFTP implements Comparable<ComandoFTP> {
 25  
 
 26  276
     private int operacao = -1;
 27  276
     private int albumID = -1;
 28  276
     private int fotoID = -1;
 29  
 
 30  
     /**
 31  
      * Construtor da classe.
 32  
      * Recebe os parâmetros necessários para construção de um comando FTP (ação, albúm, foto).
 33  
      * Seta as variáveis de dentro da classe com os valores recebidos.
 34  
      * @param acao Opção do tipo de ação.
 35  
      * @param album Albúm.
 36  
      * @param foto Foto.
 37  
      */
 38  276
     public ComandoFTP(int acao, int album, int foto) {
 39  276
         operacao = acao;
 40  276
         albumID = album;
 41  276
         fotoID = foto;
 42  276
     }
 43  
 
 44  
     /**
 45  
      * Recebe um Object e compara com os valores armazenados na classe.
 46  
      * Caso positivo retorna <I>true</I>, caso contrário <I>false</I>.
 47  
      * @param o comandoFTP a ser comparado.
 48  
      * @return Retorna uma variável lógica.
 49  
      */
 50  
     @Override
 51  
     public boolean equals(Object o) {
 52  
         ComandoFTP obj;
 53  
         try {
 54  1125
             obj = (ComandoFTP) o;
 55  0
         } catch (ClassCastException ccE) {
 56  0
             return false;
 57  1125
         }
 58  1125
         if (obj.getOperacao() == operacao
 59  
                 && obj.getAlbumID() == albumID
 60  
                 && obj.getFotoID() == fotoID) {
 61  117
             return true;
 62  
         }
 63  1008
         return false;
 64  
     }
 65  
 
 66  
     /**
 67  
      * Faz um teste lógico para retornar uma variável lógica.
 68  
      * É utilizado na classe {@link net.sf.webphotos.util.CacheFTP CacheFTP} no método
 69  
      * {@link net.sf.webphotos.util.CacheFTP#add(Object) add(Object a)}
 70  
      * TODO: Avaliar se esse método é realmente necessário para o código.
 71  
      * @param outra Object com dados do comando para comparação
 72  
      * @return Retorna um valor lógico.
 73  
      */
 74  
     public boolean recebe(ComandoFTP outra) {
 75  
         // o objeto "outra" pode entrar na colecao ?
 76  
         // não pode de fotoID=0...
 77  
         // um objeto "apagar 100 0" é maior que um "apagar 100 20"
 78  
         // já que o primeiro engloba o segundo
 79  411
         if (outra.getOperacao() == operacao
 80  
                 && outra.getAlbumID() == albumID
 81  
                 && fotoID == 0) {
 82  6
             return false;
 83  
         }
 84  405
         return true;
 85  
     }
 86  
 
 87  
     /**
 88  
      * Interface de ordenação (sort) para agrupar as operações (uploads, 
 89  
      * downloads, e deletes). Confere primeiro pela operação, se forem
 90  
      * idênticas, confere pelo albúm, se forem idênticos também checa pela foto.
 91  
      * @param outro Comando para comparação.
 92  
      * @return Retorna um valor numérico para comparação.
 93  
      */
 94  
     @Override
 95  
     public int compareTo(ComandoFTP c) {
 96  
         // operações diferentes
 97  381
         if (this.getOperacao() != c.getOperacao()) {
 98  168
             return this.getOperacao() - c.getOperacao();
 99  
         } // operação igual. Verifica se album é diferente
 100  213
         else if (this.getAlbumID() != c.getAlbumID()) {
 101  168
             return this.getAlbumID() - c.getAlbumID();
 102  
         } // operação igual, álbum igual. Ordena pela foto
 103  
         else {
 104  45
             return this.getFotoID() - c.getFotoID();
 105  
         }
 106  
     }
 107  
 
 108  
     /**
 109  
      * Retorna o valor numérico da operação.
 110  
      * @return Retorna a operação.
 111  
      */
 112  
     public int getOperacao() {
 113  2871
         return operacao;
 114  
     }
 115  
 
 116  
     /**
 117  
      * Retorna o valor numérico do albúm (ID).
 118  
      * @return Retorna o albúm.
 119  
      */
 120  
     public int getAlbumID() {
 121  1473
         return albumID;
 122  
     }
 123  
 
 124  
     /**
 125  
      * Retorna o valor numérico da foto (ID).
 126  
      * @return Retorna a foto.
 127  
      */
 128  
     public int getFotoID() {
 129  348
         return fotoID;
 130  
     }
 131  
 
 132  
     /**
 133  
      * Retorna uma String contendo os dados da classe agrupados.
 134  
      * Reuni os números da operação, do albúm e da foto.
 135  
      * @return Retorna dados do comandoFTP agrupados.
 136  
      */
 137  
     @Override
 138  
     public String toString() {
 139  120
         return operacao + " " + albumID + " " + fotoID;
 140  
     }
 141  
 }