net.sf.webphotos.sync.FTP
Class SyncObject

java.lang.Object
  extended by org.apache.commons.net.SocketClient
      extended by org.apache.commons.net.ftp.FTP
          extended by org.apache.commons.net.ftp.FTPClient
              extended by net.sf.webphotos.sync.FTP.SyncObject
All Implemented Interfaces:
Sync, org.apache.commons.net.ftp.Configurable

public class SyncObject
extends org.apache.commons.net.ftp.FTPClient
implements Sync

Interface entre o sistema e o envio de arquivos. Herda a classe FTPClient e implementa (sobrescreve) os métodos da interface Sync. Possui métodos de transferência de arquivos, mudança de diretório, criação de subdiretório, conexão e desconexão ao FTP e carregamento de arquivos de FTP.

Author:
guilherme

Field Summary
 
Fields inherited from class org.apache.commons.net.ftp.FTPClient
ACTIVE_LOCAL_DATA_CONNECTION_MODE, ACTIVE_REMOTE_DATA_CONNECTION_MODE, PASSIVE_LOCAL_DATA_CONNECTION_MODE, PASSIVE_REMOTE_DATA_CONNECTION_MODE
 
Fields inherited from class org.apache.commons.net.ftp.FTP
_commandSupport_, _controlEncoding, _controlInput_, _controlOutput_, _newReplyString, _replyCode, _replyLines, _replyString, ASCII_FILE_TYPE, BINARY_FILE_TYPE, BLOCK_TRANSFER_MODE, CARRIAGE_CONTROL_TEXT_FORMAT, COMPRESSED_TRANSFER_MODE, DEFAULT_CONTROL_ENCODING, DEFAULT_DATA_PORT, DEFAULT_PORT, EBCDIC_FILE_TYPE, FILE_STRUCTURE, LOCAL_FILE_TYPE, NON_PRINT_TEXT_FORMAT, PAGE_STRUCTURE, RECORD_STRUCTURE, STREAM_TRANSFER_MODE, strictMultilineParsing, TELNET_TEXT_FORMAT
 
Fields inherited from class org.apache.commons.net.SocketClient
_defaultPort_, _input_, _output_, _serverSocketFactory_, _socket_, _socketFactory_, _timeout_, connectTimeout, NETASCII_EOL
 
Constructor Summary
SyncObject()
          Cria uma nova instância de FTP
 
Method Summary
 void cd(String diretorioFilho)
          Muda de diretório. criando o diretório quando não existir.
 boolean connect()
          Conecta ao servidor FTP.
 void disconnect(String msg)
          Desconecta do servidor FTP e apresenta uma mensagem de log.
 File getAlbunsRoot()
          Retorna o diretório raiz de albúns.
 org.apache.commons.net.io.CopyStreamListener getCopyStreamListener()
          Retorna o objeto copyStreamListener.
 ArrayList<Arquivo> getListaArquivos()
          Retorna o ArrayList listaArquivos.
 char[] getSenha()
          Retorna a senha do usuário.
 String getSyncFolder()
          Retorna o caminho que deve usar
 SyncListener getSyncListener()
          Retorna o ouvinte syncListener.
 String getUsuario()
          Retorna o usuário.
 boolean isEnviarAltaResolucao()
          Retorna o valor de enviarAltaResolucao.
 void loadSyncCache()
          Faz um load no ArrayList CacheFTP, faz uma busca por iteração, identifica e carrega as linhas de comandos na seguinte ordem: DELETE, UPLOAD e DOWNLOAD.
 void loadSyncCacheLine(String linha)
          Recebe uma linha com comando de FTP (DELETE, DOWNLOAD ou UPLOAD), processa o tipo "acao albumID foto" e a carrega em cima do ArrayList listaArquivos, que contém dados de Arquivo.
 boolean makeDirectory(String pathName)
          Cria um novo subdiretório no servidor FTP, no diretório atual (se um pathname relativo é dado) ou onde especificado (se um pathname absoluto é dado).
 void setCopyStreamListener(org.apache.commons.net.io.CopyStreamListener copyStreamListener)
          Seta o objeto copyStreamListener.
 void setListaArquivos(ArrayList<Arquivo> _listaArquivos)
          Seta uma lista para a variável listaArquivos.
 void setSenha(char[] senha)
          Seta uma senha para o usuário.
 void setSyncFolder(String ftpRoot)
          Determina qual caminho usar
 void setSyncListener(SyncListener listener)
          Seta o ouvinte syncListener.
 void setUsuario(String usuario)
          Seta um nome para usuário.
 void transferFile(InputStream streamOrigem, OutputStream streamDestino, long streamSize)
          Método baseado no storeFile da classe FTPClient, do pacote commons/net.
 
Methods inherited from class org.apache.commons.net.ftp.FTPClient
_connectAction_, _openDataConnection_, abort, allocate, allocate, appendFile, appendFileStream, changeToParentDirectory, changeWorkingDirectory, completePendingCommand, configure, deleteFile, disconnect, enterLocalActiveMode, enterLocalPassiveMode, enterRemoteActiveMode, enterRemotePassiveMode, getBufferSize, getDataConnectionMode, getListArguments, getListHiddenFiles, getModificationTime, getPassiveHost, getPassivePort, getRestartOffset, getStatus, getStatus, getSystemName, initiateListParsing, initiateListParsing, initiateListParsing, isRemoteVerificationEnabled, listFiles, listFiles, listHelp, listHelp, listNames, listNames, login, login, logout, printWorkingDirectory, remoteAppend, remoteRetrieve, remoteStore, remoteStoreUnique, remoteStoreUnique, removeDirectory, rename, retrieveFile, retrieveFileStream, sendNoOp, sendSiteCommand, setBufferSize, setDataTimeout, setFileStructure, setFileTransferMode, setFileType, setFileType, setListHiddenFiles, setParserFactory, setRemoteVerificationEnabled, setRestartOffset, storeFile, storeFileStream, storeUniqueFile, storeUniqueFile, storeUniqueFileStream, storeUniqueFileStream, structureMount
 
Methods inherited from class org.apache.commons.net.ftp.FTP
abor, acct, addProtocolCommandListener, allo, allo, appe, cdup, cwd, dele, getControlEncoding, getReply, getReplyCode, getReplyString, getReplyStrings, help, help, isStrictMultilineParsing, list, list, mdtm, mkd, mode, nlst, nlst, noop, pass, pasv, port, pwd, quit, rein, removeProtocolCommandListener, rest, retr, rmd, rnfr, rnto, sendCommand, sendCommand, sendCommand, sendCommand, setControlEncoding, setStrictMultilineParsing, site, smnt, stat, stat, stor, stou, stou, stru, syst, type, type, user
 
Methods inherited from class org.apache.commons.net.SocketClient
connect, connect, connect, connect, connect, connect, getConnectTimeout, getDefaultPort, getDefaultTimeout, getLocalAddress, getLocalPort, getRemoteAddress, getRemotePort, getSoLinger, getSoTimeout, getTcpNoDelay, isConnected, setConnectTimeout, setDefaultPort, setDefaultTimeout, setReceiveBufferSize, setSendBufferSize, setServerSocketFactory, setSocketFactory, setSoLinger, setSoTimeout, setTcpNoDelay, verifyRemote
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface net.sf.webphotos.sync.Sync
changeWorkingDirectory, deleteFile, getBufferSize, listFiles, printWorkingDirectory, removeDirectory, retrieveFileStream, storeFileStream
 

Constructor Detail

SyncObject

public SyncObject()
Cria uma nova instância de FTP

Method Detail

transferFile

public void transferFile(InputStream streamOrigem,
                         OutputStream streamDestino,
                         long streamSize)
                  throws IOException
Método baseado no storeFile da classe FTPClient, do pacote commons/net. Acrescenta um controle de processamento para saber quanto foi enviado/recebido.

Specified by:
transferFile in interface Sync
Parameters:
streamOrigem - Arquivo de origem
streamDestino - Local de destino
streamSize - Tamanho do arquivo
Throws:
IOException - Problemas na leitura e escrita dos dados.

cd

public void cd(String diretorioFilho)
        throws IOException,
               SyncException
Muda de diretório. criando o diretório quando não existir. TODO: Colocar o Util.log para trabalhar no fluxo de execução.

Specified by:
cd in interface Sync
Parameters:
diretorioFilho - Diretório que deve ser acessado.
Throws:
SyncException - Erro de sincronização.
IOException - Erro de comunicação entre os dados.

makeDirectory

public boolean makeDirectory(String pathName)
                      throws IOException
Cria um novo subdiretório no servidor FTP, no diretório atual (se um pathname relativo é dado) ou onde especificado (se um pathname absoluto é dado). Esta é uma versão recurssiva que cria os diretórios somente quando são precisos.

Specified by:
makeDirectory in interface Sync
Overrides:
makeDirectory in class org.apache.commons.net.ftp.FTPClient
Parameters:
pathName - O nome do diretório a ser criado.
Returns:
True se completou com sucesso, ou false caso não.
Throws:
IOException - Se um erro de I/O ocorrer enquanto está enviando comando para o servidor ou recebendo resposta dele.

connect

public boolean connect()
Conecta ao servidor FTP. Retorna uma confirmação da conexão através de um boolean. TODO: remontar a função para que use somente dados externos a classe

Specified by:
connect in interface Sync
Returns:
Valor lógico que confirma a conexão.

disconnect

public void disconnect(String msg)
Desconecta do servidor FTP e apresenta uma mensagem de log.

Specified by:
disconnect in interface Sync
Parameters:
msg - Mensagem de desconexão.

loadSyncCache

public void loadSyncCache()
Faz um load no ArrayList CacheFTP, faz uma busca por iteração, identifica e carrega as linhas de comandos na seguinte ordem: DELETE, UPLOAD e DOWNLOAD. Carrega esses comandos através do método loadSyncCacheLine(). Por último, após completo o load, limpa a lista do CacheFTP.

Specified by:
loadSyncCache in interface Sync

loadSyncCacheLine

public void loadSyncCacheLine(String linha)
Recebe uma linha com comando de FTP (DELETE, DOWNLOAD ou UPLOAD), processa o tipo "acao albumID foto" e a carrega em cima do ArrayList listaArquivos, que contém dados de Arquivo.

Specified by:
loadSyncCacheLine in interface Sync
Parameters:
linha - Linha de comando FTP.

getSyncFolder

public String getSyncFolder()
Retorna o caminho que deve usar

Specified by:
getSyncFolder in interface Sync
Returns:
Mostra o caminho base

setSyncFolder

public void setSyncFolder(String ftpRoot)
Determina qual caminho usar

Specified by:
setSyncFolder in interface Sync
Parameters:
ftpRoot - Parâmetro que recebe a informação

getSyncListener

public SyncListener getSyncListener()
Retorna o ouvinte syncListener.

Specified by:
getSyncListener in interface Sync
Returns:
Retorna um listener de sincronização.

setSyncListener

public void setSyncListener(SyncListener listener)
Seta o ouvinte syncListener.

Specified by:
setSyncListener in interface Sync
Parameters:
listener - Um listener de sincronização.

getCopyStreamListener

public org.apache.commons.net.io.CopyStreamListener getCopyStreamListener()
Retorna o objeto copyStreamListener.

Specified by:
getCopyStreamListener in interface Sync
Returns:
Retorna copyStreamListener.

setCopyStreamListener

public void setCopyStreamListener(org.apache.commons.net.io.CopyStreamListener copyStreamListener)
Seta o objeto copyStreamListener.

Specified by:
setCopyStreamListener in interface Sync
Parameters:
copyStreamListener - Objeto da classe CopyStreamListener.

getUsuario

public String getUsuario()
Retorna o usuário.

Specified by:
getUsuario in interface Sync
Returns:
Retorna um usuário.

setUsuario

public void setUsuario(String usuario)
Seta um nome para usuário.

Specified by:
setUsuario in interface Sync
Parameters:
usuario - Usuário.

getSenha

public char[] getSenha()
Retorna a senha do usuário.

Specified by:
getSenha in interface Sync
Returns:
Retorna uma senha.

setSenha

public void setSenha(char[] senha)
Seta uma senha para o usuário.

Specified by:
setSenha in interface Sync
Parameters:
senha - Senha do usuário.

getListaArquivos

public ArrayList<Arquivo> getListaArquivos()
Retorna o ArrayList listaArquivos.

Specified by:
getListaArquivos in interface Sync
Returns:
Retorna listaArquivos.

setListaArquivos

public void setListaArquivos(ArrayList<Arquivo> _listaArquivos)
Seta uma lista para a variável listaArquivos.

Parameters:
_listaArquivos - Lista de arquivos.

isEnviarAltaResolucao

public boolean isEnviarAltaResolucao()
Retorna o valor de enviarAltaResolucao. Especifica se serão enviadas ou não, as imagens originais.

Specified by:
isEnviarAltaResolucao in interface Sync
Returns:
Retorna um valor lógico.

getAlbunsRoot

public File getAlbunsRoot()
Retorna o diretório raiz de albúns. TODO: Já existe um método igual a esse na classe Util.

Returns:
Retorna um diretório.


Copyright © 2008-2012. All Rights Reserved.