public class ClientProjectFile extends Object implements ClientFile, Serializable, Comparable<ClientProjectFile>
OPTIMIZATION_MODE_GLOBAL, OPTIMIZATION_MODE_NONE| Constructor and Description |
|---|
ClientProjectFile(Object projectId,
String name,
String[] path,
ClientProjectFile parent,
String type,
boolean isDirectory,
boolean hasChildren,
boolean isUnderConstruction,
Object createdBy,
long creationDate,
long size,
long modificationDate,
boolean isLocked,
boolean updatable,
String updateUserLogin,
long updateInterval)
Construtor
|
| Modifier and Type | Method and Description |
|---|---|
Object |
acquireExclusiveLock()
Tenta obter lock exclusivo de escrita para o arquivo no servidor.
|
Object |
acquireExclusiveLock(ClientFileLockListener listener,
long timeout)
Tenta obter um lock de escrita exclusivo para o arquivo.
|
Object |
acquireSharedLock()
Tenta obter lock compartilhado de escrita para o arquivo no servidor.
|
Object |
acquireSharedLock(ClientFileLockListener listener,
long timeout)
Tenta obter lock compartilhado para o arquivo.
|
void |
addChild(boolean clientSide,
boolean fixParentsRecursively,
ClientProjectFile newChild)
Adiciona um novo arquivo neste diretório se ele ainda não existir.
|
void |
appendDescription(String text)
Anexa um texto à descrição atual deste arquivo.
|
boolean |
canExecute()
Retorna true se o arquivo pode ser executado, false caso contrário.
|
boolean |
canRead()
Retorna true se o arquivo pode ser lido, false caso contrário.
|
boolean |
canWrite()
Retorna true se o arquivo pode ser escrito, false caso contrário.
|
void |
changeType(String newType)
Solicita ao servidor para modificar o tipo do arquivo
|
void |
close(boolean force)
Fecha este arquivo.
|
int |
compareTo(ClientProjectFile other) |
void |
copy(ClientProjectFile directory)
Copia este arquivo para outro diretório.
|
void |
createFile(String fileName,
String fileType)
Cria um arquivo dentro deste diretório.
|
void |
createFiles(List<ProjectFileInfo> fileInfoList)
Cria vários arquivos simultaneamente dentro deste diretório.
|
void |
download(OutputStream out,
long chunkSize,
ProjectFileChannelLoadListener listener)
Recupera o conteúdo completo de um arquivo projeto para um stream de saída.
|
boolean |
equals(Object o)
Testa a igualdade de dois arquivos.
|
boolean |
exists()
Verifica se o arquivo existe no servidor.
|
static boolean |
existsFile(Object projectId,
String[] path)
Verifica se o arquivo existe no servidor.
|
ClientProjectFile |
getChild(ProjectFileInfo prjFileInfo)
Obtém o filho do diretório corrente a partir do
ProjectFileInfo que
o representa. |
ClientProjectFile |
getChild(String childName)
Obtém um
arquivo deste diretório ou null
caso ele não seja encontrado ou este arquivo não represente um diretório. |
ClientProjectFile |
getChild(String[] path)
Obtém o nó filho indicado pelo caminho fornecido.
|
int |
getChildIndex(ClientProjectFile child)
Obtém o índice de um arquivo dentro de um diretório
|
ClientProjectFile[] |
getChildren()
Retorna a lista de arquivos deste diretório.
|
ClientProjectFile[] |
getChildren(boolean discardLocal,
boolean recursive)
Obtém os filhos do diretório corrente, opcionalmente descartando o cache
local e obtendo toda a subárvore recursivamente.
|
ClientProjectFile[] |
getChildren(String fileType)
Retorna a lista de arquivos deste diretório do tipo especificado.
|
ClientFileType |
getClientFileType()
Retorna item de enumeração que identifica o tipo do arquivo quanto ao local
onde o arquivo está armazenado.
|
long |
getCreationDate()
Informa o a data de criação arquivo.
|
String |
getDescription()
Obtém a descrição atual deste arquivo.
|
InputStream |
getInputStream()
Obtém um fluxo de entrada para leitura do arquivo.
|
ClientProjectFile[] |
getLocalChildren()
Retorna a lista de arquivos deste diretório, mas não vai ao servidor buscar
os filhos se estes ainda não tiverem sido carregados.
|
long |
getLocalTotalSize(ProjectFileFilter filter)
Calcula o tamanho total de um arquivo.
|
long |
getModificationDate()
Informa a data da última modificação deste arquivo (formato numérico).
|
String |
getName()
Retorna o nome do arquivo.
|
OutputStream |
getOutputStream()
Obtém um fluxo de saída para escrita no arquivo.
|
ClientProjectFile |
getParent()
Retorna o diretório-pai
|
String[] |
getPath()
Retorna o caminho para o arquivo na forma de um array (não inclui o nome do
projeto).
|
Object |
getProjectId()
Retorna o id do projeto.
|
String |
getStringPath()
Retorna o path pro arquivo na forma de string.
|
long |
getTotalSize(ProjectFileFilter filter)
Calcula o tamanho total de um arquivo.
|
String |
getType()
Informa o tipo do arquivo.
|
long |
getUpdateInterval()
Obtém o intervalo pelo qual o arquivo (somentes os atualizáveis) está sendo
atualizado.
|
String |
getUpdateUserLogin()
Obtém o nome do usuário que agendou a a atualização do arquivo.
|
boolean |
hasChildren()
Verifica se o nó possui filhos.
|
static boolean |
hasDirectories(ClientProjectFile[] projectFiles)
Verifica se algum arquivo de projeto é diretório.
|
static boolean |
hasFileUnderConstruction(ClientProjectFile[] projectFiles)
Verifica se algum arquivo de projeto está em construção.
|
int |
hashCode()
Redefine a chave pela qual o arquivo deve ser buscado/inserido em
hashtables.
|
boolean |
isDirectory()
Indica se este arquivo é um diretório.
|
boolean |
isLocked()
Retorna boolean indicando se este arquivo está bloqueado.
|
boolean |
isMoving() |
boolean |
isOpen()
Indica se este arquivo está aberto, ou seja, se já foi criado um canal para
acesso ao seu conteúdo.
|
boolean |
isRoot()
Indica se este arquivo é o root da arvore.
|
boolean |
isUnderConstruction()
Indica se este arquivo é um arquivo em construção.
|
boolean |
isUpdatable()
Verifica se o arquivo é atualizável.
|
boolean |
isUpdated()
Indica se o arquivo está atualizado em relação ao servidor.
|
void |
move(ClientProjectFile directory)
Move este arquivo para outro diretório.
|
void |
open(boolean readOnly)
Abre o arquivo para leitura ou para leitura e escrita.
|
long |
position()
Informa a posição corrente deste arquivo.
|
void |
position(long newPosition)
Altera a posição corrente deste arquivo.
|
int |
read(byte[] target,
int offset,
int length,
long position)
Lê uma sequência de bytes do arquivo.
|
int |
read(byte[] dst,
long position)
Lê uma sequência de bytes do arquivo.
|
int |
releaseLock(Object lockId)
Libera o lock para o arquivo no servidor.
|
void |
remove()
Remove este arquivo.
|
int |
removeChild(ClientProjectFile child)
Remove um arquivo deste diretório.
|
void |
rename(String fileName)
Troca o nome deste arquivo.
|
void |
resetChildren()
Reseta a lista de filhos.
|
void |
setChildren(boolean clientSide,
boolean fixParentsRecursively,
ClientProjectFile[] newChildren)
Redefine a lista de filhos deste diretório.
|
void |
setDescription(String text)
Muda a descrição atual deste arquivo.
|
void |
setHasChildren(boolean hasChildren)
Define se o nó possui filhos.
|
void |
setLocked(boolean isLocked)
Muda o estado do arquivo para bloqueado ou desbloqueado
|
void |
setModificationDate(long modificationDate)
Muda a data de modificação do arquivo.
|
void |
setMoving(boolean isMoving)
Indica se este arquivo/diretório está sendo movido de lugar.
|
void |
setName(String name)
Muda o nome do arquivo.
|
void |
setParent(ClientProjectFile newParent)
Redefine o pai do arquivo.
|
void |
setSize(long size)
Muda o tamanho do arquivo.
|
void |
setType(String newType)
Muda o tipo do arquivo localmente.
|
void |
setUnderConstruction(boolean isUnderConstruction)
Muda o estado "em construção" do arquivo.
|
void |
setUpdated(boolean updated)
Informa se o arquivo está atualizado em relação ao servidor.
|
void |
setUpdateInfo(String updateUserLogin,
long updateInterval)
Define informações sobre o agendamento da atualizado de um arquivo.
|
long |
size()
Informa o tamanho corrente deste arquivo.
|
static String[] |
splitPath(String path)
Método interno para decomposição de um caminho de arquivo (path) em
um array de strings; onde cada elemento é montado no separador
"/". |
String |
toString()
Retorna um texto descritivo do arquivo.
|
void |
truncate(long newSize)
Ajusta o tamanho corrente deste arquivo.
|
void |
updateInfo()
Atualiza as informações desse arquivo buscando os dados reais no servidor.
|
void |
updatePath()
Corrige o path e o dos descendentes de acordo com o path do parent
|
void |
upload(InputStream in,
long chunkSize,
ProjectFileChannelLoadListener listener)
Envia o conteúdo de um stream de entrada para o arquivo do projeto.
|
boolean |
userOwnsLock()
Verifica se o usuário corrente é o dono do lock do arquivo.
|
Object |
whoCreated()
Retorna o usuário que criou esse arquivo.
|
void |
write(byte[] src,
int off,
int len,
long position)
Escreve uma sequência de bytes do arquivo.
|
void |
write(byte[] src,
long position)
Escreve uma sequência de bytes do arquivo.
|
public ClientProjectFile(Object projectId, String name, String[] path, ClientProjectFile parent, String type, boolean isDirectory, boolean hasChildren, boolean isUnderConstruction, Object createdBy, long creationDate, long size, long modificationDate, boolean isLocked, boolean updatable, String updateUserLogin, long updateInterval)
projectId - identificador do projetoname - nome do arquivopath - caminho para o arquivo, a partir da raizparent - diretório-pai. Se estiver sendo construido no servidor, este
valor deve ser null.type - tipo do arquivoisDirectory - indicativo de diretóriohasChildren - flag indicando se o nó possui filhos. Pode ser
true mesmo que children seja
nullisUnderConstruction - indicaivo de construçãocreatedBy - usuário que criou o arquivo/diretóriocreationDate - data de criaçãosize - tamanho do arquivomodificationDate - data da última modificação.isLocked - indica se o arquivo está bloqueadoupdatable - indica se o arquivo é atualizável.updateUserLogin - Indica o login do usuário que agendou a atualização
do arquivo.updateInterval - Indica o intervalo entre as atualizações de um
arquivo.public String getName()
getName in interface ClientFilepublic void setName(String name)
name - novo nome do arquivo.public void setSize(long size)
size - novo tamanho do arquivo.public void setModificationDate(long modificationDate)
modificationDate - nova data de modificação do arquivo.public Object getProjectId()
public String getStringPath()
getStringPath in interface ClientFilepublic String[] getPath()
getPath in interface ClientFilepublic String getType()
getType in interface ClientFilepublic long getCreationDate()
public Object whoCreated()
public ClientProjectFile getParent()
getParent in interface ClientFilepublic void setParent(ClientProjectFile newParent)
newParent - novo paipublic void updatePath()
throws RemoteException
RemoteException - em caso de erro de comunicação.public void resetChildren()
public ClientProjectFile[] getLocalChildren()
null se os
filhos ainda não foram obtidos do servidorpublic ClientProjectFile[] getChildren() throws RemoteException
getChildren in interface ClientFileRemoteExceptionpublic ClientProjectFile[] getChildren(boolean discardLocal, boolean recursive) throws RemoteException
discardLocal - true se o cache local deve ser descartadorecursive - true se a subárvore deve ser obtida
recursivamenteRemoteException - se houver falha de RMIpublic ClientProjectFile[] getChildren(String fileType) throws RemoteException
fileType - Tipo dos arquivos que devem ser retornados.RemoteException - Erro na comunicação com o servidor.public void setChildren(boolean clientSide,
boolean fixParentsRecursively,
ClientProjectFile[] newChildren)
clientSide - true se o arquivo está sendo inserido no
cliente. Se este parâmetro for false o parâmetro
fixParentsRecursively será ignorado.fixParentsRecursively - true se as referências para os
pais devem ser corrigidas recursivamente. Neste caso, os novos
filhos apontarão para seu novo pai, e este processo se repetirá
recursivamente.false, apenas as referências dos novos filhos diretos
serão corrigidas.newChildren - a nova lista de filhospublic ClientProjectFile getChild(String childName) throws RemoteException
arquivo deste diretório ou null
caso ele não seja encontrado ou este arquivo não represente um diretório.childName - - path para o filho, a partir deste diretóriofilho deste diretório ou null
caso ele não seja encontrado ou este arquivo não represente um
diretório.RemoteException - se houver falha de RMIgetChild(java.lang.String)public void addChild(boolean clientSide,
boolean fixParentsRecursively,
ClientProjectFile newChild)
throws RemoteException
clientSide - true se o arquivo está sendo inserido no
cliente. Se este parâmetro for false o parâmetro
fixParentsRecursively será ignorado.fixParentsRecursively - true se as referências para os
pais devem ser corrigidas recursivamente. Neste caso, os novos
filhos apontarão para seu novo pai, e este processo se repetirá
recursivamente.false, apenas as referências dos novos filhos diretos
serão corrigidas.newChild - O arquivo (ou diretório) a ser incluídoRemoteException - se houver falha de RMIpublic int getChildIndex(ClientProjectFile child) throws RemoteException
child - O arquivo (ou diretório) do qual deseja-se o índiceRemoteException - se houver falha de RMIpublic int removeChild(ClientProjectFile child) throws RemoteException
child - O arquivo (ou diretório) a ser removidoRemoteException - se houver falha de RMIpublic void createFile(String fileName, String fileType) throws RemoteException
fileName - Nome do arquivo a ser criado.fileType - Tipo do arquivo a ser criado.RemoteException - falha de rmipublic void createFiles(List<ProjectFileInfo> fileInfoList) throws RemoteException
fileInfoList - lista de dados dos arquivos a serem criados.RemoteException - falha de rmipublic void rename(String fileName) throws RemoteException
fileName - Novo nome do arquivo.RemoteException - falha de rmipublic void copy(ClientProjectFile directory) throws RemoteException
directory - Diretório destino.RemoteException - Falha de rmipublic void move(ClientProjectFile directory) throws RemoteException
directory - Diretório destino.RemoteException - erro no acesso ao servidorpublic void remove()
throws RemoteException
RemoteException - falha de comunicação com o servidorpublic void updateInfo()
throws RemoteException
RemoteException - Falha de rmipublic boolean isDirectory()
isDirectory in interface ClientFilepublic boolean hasChildren()
ClientProjectFile foi criado
pelo servidor a partir de um diretório que contém filhos, este método pode
retornar true mesmo que a lista de filhos não tenha sido
obtida ainda do servidor. Esta informação é tipicamente usada pela árvore
do projeto para indicar se um nó é folha.true se o nó possui filhospublic void setHasChildren(boolean hasChildren)
hasChildren - flag indicando se o nó possui filhospublic boolean isUnderConstruction()
public void setUnderConstruction(boolean isUnderConstruction)
isUnderConstruction - true se o arquivo estiver em construção.public void setLocked(boolean isLocked)
isLocked - true se o arquivo estiver bloqueadopublic String getDescription() throws RemoteException
RemoteException - falha de rmipublic void setDescription(String text) throws RemoteException
text - novo texto da descrição do arquivo.RemoteException - falha de rmipublic void appendDescription(String text) throws RemoteException
text - texto a ser anexado.RemoteException - falha de rmipublic long size()
size in interface ClientFilepublic long getTotalSize(ProjectFileFilter filter) throws RemoteException
filter - Define que arquivos são usados para calcular o tamanho total
de um diretório.RemoteException - Quando não consegue carregar a subárvore de um
diretório do servidor.public long getLocalTotalSize(ProjectFileFilter filter)
filter - Define que arquivos são usados para calcular o tamanho total
de um diretório.public long getModificationDate()
getModificationDate in interface ClientFilepublic boolean isUpdated()
true se está atualizadopublic void setUpdated(boolean updated)
updated - true se está atualizado.public ClientProjectFile getChild(String[] path) throws RemoteException
path - Array de Strings com o caminho para o arquivo, não
incluindo o nome do diretório corrente.RemoteException - se houver falha de RMIpublic ClientProjectFile getChild(ProjectFileInfo prjFileInfo) throws RemoteException
ProjectFileInfo que
o representa.prjFileInfo - - propriedades do arquivo a ser obtidoRemoteException - Se houver falha de comunicação.public boolean exists()
throws RemoteException
exists in interface ClientFileRemoteException - se houver falha de RMIpublic static boolean existsFile(Object projectId, String[] path) throws RemoteException
projectId - id do projetopath - o path do arquivo.RemoteException - se houver falha de RMIpublic static String[] splitPath(String path)
"/".path - o caminho lógico do arquivo.public void truncate(long newSize)
throws IOException
newSize - o novo tamanho a ser ajustado.IOException - Em caso de erro.public void open(boolean readOnly)
throws RemoteException
open in interface ClientFilereadOnly - Boolean indicando se o arquivo deve ser aberto para leitura
ou para leitura e escrita.RemoteExceptionpublic Object acquireExclusiveLock() throws RemoteException
RemoteException - falha de rmipublic Object acquireExclusiveLock(ClientFileLockListener listener, long timeout) throws RemoteException
listener - observador do lock cadastrado no servidortimeout - tempo máximo de espera pelo lock em milisegundos. A
constante ProjectServiceInterface.INFINITE_TIMOUT foi criada para
timeout infinito.RemoteException - falha de rmipublic Object acquireSharedLock() throws RemoteException
RemoteException - falha de rmipublic Object acquireSharedLock(ClientFileLockListener listener, long timeout) throws RemoteException
listener - observador do lock cadastrado no servidortimeout - tempo máximo de espera pelo lock em milisegundos. A
constante ProjectServiceInterface.INFINITE_TIMOUT foi criada para
timout infinito.RemoteException - falha de rmipublic int releaseLock(Object lockId) throws RemoteException
lockId - identificador do lockRemoteException - falha de rmipublic boolean isLocked()
public boolean userOwnsLock()
throws RemoteException
true se o usuário corrente é o dono do lockRemoteException - em caso de erro de comunicação.public boolean isOpen()
public long position()
position in interface ClientFilepublic void position(long newPosition)
throws IOException
position in interface ClientFilenewPosition - Nova posição corrente do arquivo.IOException - Em caso de erro.public int read(byte[] dst,
long position)
throws IOException
read in interface ClientFiledst - O array a ser preenchido.position - A posição do arquivo a partir da qual a leitura deve ser
iniciada.IOException - Caso ocorra alguma falha no procedimento.public int read(byte[] target,
int offset,
int length,
long position)
throws IOException
read in interface ClientFiletarget - O array a ser preenchido.offset - O deslocamento no array a partir do qual os bytes serão
armazenados.length - A quantidade de bytes a serem lidos do arquivo.position - A posição do arquivo a partir da qual a leitura deve ser
iniciada.IOException - Caso ocorra alguma falha no procedimento.public void write(byte[] src,
long position)
throws IOException,
FileLockedException
write in interface ClientFilesrc - O array contendo os bytes a serem escritos no arquivo.position - A posição do arquivo a partir da qual a escrita deve ser
iniciada.IOException - Em caso de erro.FileLockedException - caso o arquivo esteja bloqueado para escrita
por outra sessão de usuáriopublic void write(byte[] src,
int off,
int len,
long position)
throws IOException,
FileLockedException
write in interface ClientFilesrc - O array contendo os bytes a serem escritos no arquivo.off - O deslocamento no array a partir do qual os bytes serão lidos.len - A quantidade de bytes a serem escritos do arquivo.position - A posição do arquivo a partir da qual a escrita deve ser
iniciada.IOException - Em caso de erro.FileLockedException - caso o arquivo esteja bloqueado para escrita
por outra sessão de usuáriopublic void upload(InputStream in, long chunkSize, ProjectFileChannelLoadListener listener) throws IOException, FileLockedException
in - O stream de entrada que definirá o conteúdo do arquivo do
projeto.chunkSize - O tamanho do buffer intermediário usado na transferência.listener - O listener que será chamado para acompanhar a
transferência. Esse listener será chamado, no máximo, a cada buffer
completo que seja transferido. Pode ser nulo.IOException - Se houver falha de I/O.FileLockedException - Caso o arquivo do projeto esteja bloqueado para
escrita.public void download(OutputStream out, long chunkSize, ProjectFileChannelLoadListener listener) throws IOException
out - O stream de saída que receberá o conteúdo do arquivo do projeto.chunkSize - O tamanho do buffer intermediário usado na transferência.listener - O listener que será chamado para acompanhar a
transferência. Esse listener será chamado, no máximo, a cada buffer
completo que seja transferido. Pode ser nulo.IOException - Se houver falha de I/O.public void close(boolean force)
throws RemoteException,
IOException
close in interface ClientFileforce - Indica que o arquivo deve ser considerado fechado mesmo em
caso de erro.IOException - se houver falha no acesso ao arquivo.RemoteExceptionpublic String toString()
public void setType(String newType)
newType - O novo tipo do arquivo.public void changeType(String newType) throws RemoteException
newType - O novo tipo do arquivo.RemoteException - falha de rmipublic boolean equals(Object o)
ClientProjectFile são
considerados iguais se seus paths absolutos forem os mesmos.public int hashCode()
public int compareTo(ClientProjectFile other)
compareTo in interface Comparable<ClientProjectFile>public void setMoving(boolean isMoving)
isMoving - indicativopublic boolean isMoving()
public static boolean hasDirectories(ClientProjectFile[] projectFiles)
projectFiles - Os arquivos que se deseja verificar.public static boolean hasFileUnderConstruction(ClientProjectFile[] projectFiles)
projectFiles - Os arquivos que se deseja verificar.public boolean isUpdatable()
true caso o arquivo seja atualizável, ou false,
caso contrário.public String getUpdateUserLogin()
public long getUpdateInterval()
public void setUpdateInfo(String updateUserLogin, long updateInterval)
updateUserLogin - O login do usuário que agendou a atualização.updateInterval - O intervalo pelo qual o arquivo está sendo atulizado.
Caso o arquivo não esteja sendo atulizado ou não seja atualizável, o
valor deve ser 0 (zero).public boolean isRoot()
public InputStream getInputStream() throws IOException
getInputStream in interface ClientFileIOException - Caso ocorra algum erro de IO durante o procedimento.public OutputStream getOutputStream() throws IOException
getOutputStream in interface ClientFileIOException - Caso ocorra algum erro de IO durante o procedimento.public ClientFileType getClientFileType()
getClientFileType in interface ClientFilepublic boolean canExecute()
canExecute in interface ClientFilepublic boolean canRead()
canRead in interface ClientFilepublic boolean canWrite()
canWrite in interface ClientFileCopyright © 2019. All rights reserved.