Coverage Report - net.sf.webphotos.sync.Sync
 
Classes in this File Line Coverage Branch Coverage Complexity
Sync
N/A
N/A
1
 
 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  
 /*
 17  
  * Sync.java
 18  
  *
 19  
  * Created on 23 de Maio de 2006, 11:40
 20  
  *
 21  
  * To change this template, choose Tools | Template Manager
 22  
  * and open the template in the editor.
 23  
  */
 24  
 
 25  
 package net.sf.webphotos.sync;
 26  
 
 27  
 import java.io.IOException;
 28  
 import java.io.InputStream;
 29  
 import java.io.OutputStream;
 30  
 import java.util.ArrayList;
 31  
 import net.sf.webphotos.util.legacy.Arquivo;
 32  
 import org.apache.commons.net.ftp.FTPFile;
 33  
 import org.apache.commons.net.io.CopyStreamListener;
 34  
 
 35  
 /**
 36  
  * Interface que especifica como webfotos irá
 37  
  * sincronizar arquivos.
 38  
  * @author guilherme
 39  
  */
 40  
 public interface Sync {
 41  
 
 42  
     /**
 43  
      * Retorna um InputStream para o arquivo específico.
 44  
      * @param arquivo Nome do arquivo.
 45  
      * @return Retorna um InputStream.
 46  
      * @throws java.io.IOException Erro durante transmissão de I/O.
 47  
      */
 48  
     InputStream retrieveFileStream(String arquivo) throws IOException;
 49  
     /**
 50  
      * Retorna um OutputStream para o arquivo específico.
 51  
      * @param arquivo Nome do arquivo.
 52  
      * @return Retorna um OutputStream.
 53  
      * @throws java.io.IOException Erro durante transmissão de I/O.
 54  
      */
 55  
     OutputStream storeFileStream(String arquivo) throws IOException;
 56  
     /**
 57  
      * Faz a transferência de um arquivo.
 58  
      * @param streamOrigem Arquivo de origem.
 59  
      * @param streamDestino Local de destino.
 60  
      * @param streamSize Tamanho do arquivo.
 61  
      * @throws java.io.IOException Problemas na leitura e escrita dos dados.
 62  
      */
 63  
     void transferFile(InputStream streamOrigem, OutputStream streamDestino, long streamSize) throws IOException;
 64  
     /**
 65  
      * Deleta um arquivo especificado pelos parãmetros.
 66  
      * @param string Nome do arquivo.
 67  
      * @return Retorna uma confirmação de exclusão.
 68  
      * @throws java.io.IOException Erro durante transmissão de I/O.
 69  
      */
 70  
     boolean deleteFile(String string) throws IOException;
 71  
     
 72  
     /**
 73  
      * Muda o diretório.
 74  
      * @param diretorioFilho Diretório que deve ser acessado.
 75  
      * @throws java.io.IOException Erro de sincronização.
 76  
      * @throws net.sf.webphotos.sync.SyncException Erro de comunicação entre os dados.
 77  
      */
 78  
     void cd(String diretorioFilho) throws IOException, SyncException;
 79  
     /**
 80  
      * Cria um novo subdiretório no diretório utilizado.
 81  
      * @param pathName O nome do diretório a ser criado.
 82  
      * @throws java.io.IOException Se um erro de I/O ocorrer enquanto está sendo enviado
 83  
      * um comando ao servidor ou recebendo uma resposta do servidor.
 84  
      * @return Retorna <I>true</I> caso ocorra com sucesso.
 85  
      */
 86  
     boolean makeDirectory(String pathName) throws IOException;
 87  
     /**
 88  
      * Muda o diretório de trabalho baseado no novo passado como parâmetro.
 89  
      * @param pathName Novo diretório de trabalho.
 90  
      * @return Retorna uma confirmação.
 91  
      * @throws java.io.IOException Erro durante uma transmissão de I/O.
 92  
      */
 93  
     boolean changeWorkingDirectory(String pathName) throws IOException;
 94  
     /**
 95  
      * Retorna o nome do diretório de trabalho.
 96  
      * @return Retorna o diretório.
 97  
      * @throws java.io.IOException Erro durante transmissão de I/O.
 98  
      */
 99  
     String printWorkingDirectory() throws IOException;
 100  
     /**
 101  
      * Remove um diretório através de um ID de albúm recebido.
 102  
      * @param albumID ID do albúm.
 103  
      * @return Retorna uma confimação de exclusão do diretório.
 104  
      * @throws java.io.IOException Exceção durante transmissão de I/O.
 105  
      */
 106  
     boolean removeDirectory(String albumID) throws IOException;
 107  
     
 108  
     
 109  
     /**
 110  
      * Conecta ao FTP.
 111  
      * @return Retorna uma confirmação para a conexão.
 112  
      */
 113  
     boolean connect();
 114  
     /**
 115  
      * Desconecta do FTP e apresenta uma mensagem explicando o motivo.
 116  
      * @param msg Mensagem do motivo da desconexão.
 117  
      */
 118  
     void disconnect(String msg);
 119  
     
 120  
     /**
 121  
      * Seta um objeto CopyStreamListener.
 122  
      * TODO: esse método contem objetos específicos - retirá-lo.
 123  
      * @param copyStreamListener Objeto da classe CopyStreamListener.
 124  
      */
 125  
     void setCopyStreamListener(CopyStreamListener copyStreamListener);
 126  
     /**
 127  
      * Retorna um objeto CopyStreamListener.
 128  
      * TODO: esse método contem objetos específicos - retirá-lo.
 129  
      * @return Retorna CopyStreamListener.
 130  
      */
 131  
     CopyStreamListener getCopyStreamListener();
 132  
     
 133  
     /**
 134  
      * Seta o ouvinte syncListener.
 135  
      * @param listener Um listener de sincronização.
 136  
      */
 137  
     void setSyncListener(SyncListener listener);
 138  
     /**
 139  
      * Retorna o ouvinte syncListener.
 140  
      * @return Retorna um listener de sincronização.
 141  
      */
 142  
     SyncListener getSyncListener();
 143  
     
 144  
     /**
 145  
      * Determina qual caminho usar.
 146  
      * @param ftpRoot Parâmetro que recebe a informação.
 147  
      */
 148  
     void setSyncFolder(String ftpRoot);
 149  
     /**
 150  
      * Retorna o caminho que deve usar.
 151  
      * @return Mostra o caminho base.
 152  
      */
 153  
     String getSyncFolder();
 154  
 
 155  
     /**
 156  
      * Retorna o usuário.
 157  
      * @return Retorna um usuário.
 158  
      */
 159  
     String getUsuario();
 160  
     /**
 161  
      * Seta um nome de usuário.
 162  
      * @param usuario Usuário.
 163  
      */
 164  
     void setUsuario(String usuario);
 165  
 
 166  
     /**
 167  
      * Retorna uma senha de usuário.
 168  
      * @return Retorna uma senha.
 169  
      */
 170  
     char[] getSenha();
 171  
     /**
 172  
      * Seta uma senha de usuário.
 173  
      * @param senha Senha.
 174  
      */
 175  
     void setSenha(char[] senha);
 176  
 
 177  
     /**
 178  
      * Retorna uma lista de arquivos.
 179  
      * @throws java.io.IOException Erro durante transmissão de I/O.
 180  
      * @return Retorna um vetor com os arquivos.
 181  
      */
 182  
     FTPFile[] listFiles() throws IOException;
 183  
 
 184  
     /**
 185  
      * Retorna o tamanho do Buffer.
 186  
      * @return Retorna um tamanho inteiro.
 187  
      */
 188  
     int getBufferSize();
 189  
     /**
 190  
      * Carrega uma linha de comando FTP.
 191  
      * @param linha Linha de comando FTP.
 192  
      */
 193  
     void loadSyncCacheLine(String linha);
 194  
     /**
 195  
      * Retorna uma lista de arquivos.
 196  
      * @return Retorna uma lista de arquivos.
 197  
      */
 198  
     ArrayList<Arquivo> getListaArquivos();
 199  
 
 200  
     /**
 201  
      * Procure sua utilização em 
 202  
      * {@link net.sf.webphotos.sync.FTP.SyncObject#loadSyncCache() loadSyncCache}().
 203  
      */
 204  
     void loadSyncCache();
 205  
     /**
 206  
      * Retorna a variável boolean enviarAltaResolução para especificar se serão
 207  
      * enviadas fotos originais ou não.
 208  
      * @return Retorna um valor lógico.
 209  
      */
 210  
     boolean isEnviarAltaResolucao();
 211  
 
 212  
 }