public class CommonClientProject extends Observable implements Serializable
| Modifier and Type | Field and Description |
|---|---|
protected CommonProjectInfo |
info
Informações do projeto.
|
protected String |
name
Nome do projeto.
|
protected ProjectObserver |
observer
Observador desse projeto no servidor.
|
protected String[] |
path
Caminho de onde esse projeto está instalado, a partir da raiz de todos os
projetos.
|
protected Object |
projectId
Identificador do projeto.
|
protected boolean |
serverCanWriteProject
Informa se o servidor tem a capacidade de escrever no projeto.
|
protected ClientProjectFile |
tree
Árvore do projeto.
|
protected Object |
userId
Identificador do usuário.
|
| Constructor and Description |
|---|
CommonClientProject(Object id,
CommonProjectInfo info,
ClientProjectFile tree,
String[] path)
Cria a visão cliente de um projeto.
|
| Modifier and Type | Method and Description |
|---|---|
void |
close(boolean notify)
Fecha um projeto.
|
void |
createDirectory(ClientProjectFile root,
String[] dirPath)
Cria o caminho de diretórios especificado dentro do projeto, e espera até
que todo o caminho de diretórios esteja criado no servidor.
|
ClientProjectFile |
createFile(ClientProjectFile dir,
String fileName,
String type)
Solicita a criação de um arquivo ou diretório no projeto e bloqueia até
receber notificação do servidor.
|
ClientProjectFile[] |
createFiles(ClientProjectFile dir,
List<ProjectFileInfo> fileInfoList)
Solicita a criação de vários arquivos ou diretórios simultaneamente no
projeto e bloqueia até receber notificação do servidor.
|
static List<UserProjectInfo> |
getAllProjects(Object userId)
Retorna todos os projetos de um usuário.
|
static List<UserProjectInfo> |
getAllProjectsInfo(Object userId)
Obtém um conjunto com informações sobre todos os projetos de um usuário
(inclusive os projetos compartilhados por outros usuários).
|
static List<UserProjectInfo> |
getAllUserProjectsFromOthers(Object userId)
Obtém todos os projetos que um usuário participa, mas não é o dono.
|
Object |
getAttribute(String key)
Retorna um atributo da classe info dado a sua chave.
|
Hashtable<String,Object> |
getAttributes()
Retorna a hash de atributos do projeto.
|
long |
getCreationDate()
Retorna a data de criação do projeto.
|
String |
getDescription()
Fornece a dscrição do projeto.
|
ClientProjectFile |
getFile(String[] filePath)
Método utilitário para conversão de um array de strings que representa um
path em um arquivo no projeto corrente; caso não exista o arquivo,
retorna-se
null. |
Hashtable<?,?> |
getGroupsFrameConfig(Object uId)
Obtém as configurações do frames de um usuário
|
Object |
getId()
Retorna o identificador do projeto.
|
CommonProjectInfo |
getInfo()
Fornece o
CommonProjectInfo do projeto. |
long |
getLastModificationDate()
Retorna a data de última modificação do projeto.
|
String |
getLocationInServer()
Indica se a área do projeto está sob um link simbólico.
|
long |
getLockingAreaSize()
Fornece o tamanho da área reservada para o projeto.
|
String |
getName()
Fornece o nome do projeto.
|
String |
getOwnerServerName()
Retorna o nome do servidor que criou o projeto.
|
String[] |
getPath()
Retorna o caminho onde o projeto está instalado no servidor, a partir da
raiz (ROOT) de todos os projetos.
|
ClientProjectFile |
getRoot()
Retorna o arquivo associado à raiz do projeto.
|
ProjectPermissions.SharingType |
getSharingType()
Obtém o tipo de compartilhamento do projeto.
|
Object |
getUserId()
Fornece o identificador do usuário ao qual o projeto pertence.
|
Set<Object> |
getUserIdsSet()
Obtém um conjunto com todos os usuários que possuem acesso ao projeto.
|
Set<Object> |
getUsersRO()
Obtém o conjunto de usuários que têm acesso RO ao projeto no modo de
compartilhamento seletivo.
|
Set<Object> |
getUsersRW()
Obtém o conjunto de usuários que têm acesso RW ao projeto no modo de
compartilhamento seletivo.
|
void |
installObserver(ProjectObserver projObserver)
Instala um observador desse projeto no servidor.
|
boolean |
isPrivate()
Verifica se o projeto é privativo.
|
boolean |
isPublic()
Verifica se um projeto é público.
|
boolean |
isShared()
Verifica se o projeto está sendo compartilhado.
|
boolean |
isWritable()
Verifica se quem chamou este método tem permissão de escrita neste projeto.
|
void |
makePrivate()
Define que o projeto é privado.
|
void |
makePublic(boolean readOnly)
Define que o projeto é público (RO ou RW).
|
void |
modify()
Persiste as modificações feitas nas informações do projeto.
|
static CommonClientProject |
openProject(Object projectId,
boolean notify)
Abre um projeto de um usuário.
|
void |
refreshDir(ClientProjectFile dir)
Atualiza o conteúdo do diretório especificado no cliente, a partir da sua
contraparte no servidor.
|
void |
refreshDir(String[] dirPath)
Atualiza o conteúdo do diretório especificado no cliente, a partir da sua
contraparte no servidor.
|
void |
refreshTree()
Reconstrói e árvore do projeto a partir do sistema de arquivos do servidor.
|
static void |
remove(Object projectId)
Remove o projeto.
|
void |
removeFiles(List<ClientProjectFile> files)
Remove uma lista de arquivos.
|
void |
removeFiles(String[][] paths)
Remove os arquivos especificados pelo
paths. |
boolean |
removeUser(Object userID)
Remove um usuário das listas de acesso ao projeto.
|
static boolean |
removeUserProjects(Object userID)
Remove Todos os projetos de um usuário.
|
void |
reopen()
Abre novamente o projeto.
|
void |
setAttribute(String key,
Object attribute)
Adiciona um atributo ao projeto.
|
void |
setDescription(String description)
Altera a descrição do projeto.
|
void |
setGroupsFrameInfo(Object userId,
Hashtable<?,?> groupsFrameInfo)
Altera a configuração dos frames por usuário.
|
void |
setLockingAreaSize(long size)
Altera o tamanho da área reservada para o projeto.
|
void |
setOutOfDate()
Indica que o projeto pode estar desatualizado.
|
void |
setServerCanWriteProject(boolean serverCanWriteProject)
Define a capacidade do servidor de escrever no projeto.
|
void |
setSharingType(ProjectPermissions.SharingType sharingType)
Define o tipo de compartilhamento do projeto.
|
void |
uninstallObserver()
Desinstala um observador desse projeto no servidor.
|
void |
update(ProjectEvent action)
Trata eventos de modificação do projeto, como consequência de alguma ação
ocorrida no servidor.
|
void |
updateUsers(ProjectPermissions.SharingType sharingType,
Set<Object> usersRO,
Set<Object> usersRW)
Atualiza as informações de compartilhamento de um projeto.
|
void |
updateUsers(Set<Object> usersRO,
Set<Object> usersRW)
Atualiza ambas as listas de acesso (RO e RW) ao projeto.
|
void |
updateUsersRO(Set<Object> usersRO)
Atualiza o conjunto de usuários com acesso RO ao projeto.
|
void |
updateUsersRW(Set<Object> usersRW)
Atualiza o conjunto de usuários com acesso RW ao projeto.
|
boolean |
userHasAccessRO(Object userID)
Verifica se o usuário tem qualquer tipo de acesso RO ao projeto, ou seja,
se uma das seguintes condições é satisfeita:
o projeto é público apenas para leitura
o compartilhamento é seletivo e o usuário possui acesso RO
|
boolean |
userHasAccessRW(Object userID)
Verifica se o usuário tem qualquer tipo de acesso RW ao projeto, ou seja,
se uma das seguintes condições é satisfeita:
usuário é o admin ou o dono do projeto
o projeto é público para leitura e escrita
o compartilhamento é seletivo e o usuário possui acesso RW
|
static boolean |
userHasHisOwnProjects(Object userId)
Verifica se o usuário possui algum projeto próprio.
|
static boolean |
userParticipatesOnSharedProjects(Object userId)
Verifica se um usuário participa de projetos de outros usuários.
|
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChangedprotected Object userId
protected String name
protected Object projectId
protected CommonProjectInfo info
protected ClientProjectFile tree
protected String[] path
protected ProjectObserver observer
protected boolean serverCanWriteProject
public CommonClientProject(Object id, CommonProjectInfo info, ClientProjectFile tree, String[] path)
id - Identificador do projeto.info - Informações do projeto.tree - Visão cliente da árvore do projeto.path - Caminho de onde esse projeto está instalado, a partir da raiz
de todos os projetos.public void setServerCanWriteProject(boolean serverCanWriteProject)
serverCanWriteProject - indicador da capacidade do servidor de
escrever no projeto.public Object getId()
public Set<Object> getUserIdsSet()
public Set<Object> getUsersRO()
ATENÇÃO:
public Set<Object> getUsersRW()
ATENÇÃO:
public ProjectPermissions.SharingType getSharingType()
public void setSharingType(ProjectPermissions.SharingType sharingType)
sharingType - - tipo de compartilhamento do projetopublic boolean isPublic()
public String getOwnerServerName()
public long getCreationDate()
public long getLastModificationDate()
public boolean isPrivate()
public boolean isShared()
public boolean userHasAccessRW(Object userID)
userID - - identificador do usuáriopublic boolean userHasAccessRO(Object userID)
userID - - identificador do usuáriopublic boolean isWritable()
Verifica se quem chamou este método tem permissão de escrita neste projeto.
true se quem chamou este método tem permissão de
escrita neste projeto e se o servidor possuir permissão para
escrever no projeto pois foi o seu criador.userHasAccessRW(Object)public Object getAttribute(String key)
key - Chave do atributo.public Hashtable<String,Object> getAttributes()
public void setAttribute(String key, Object attribute)
key - Chave do atributo.attribute - Valor do atributo.public static List<UserProjectInfo> getAllProjects(Object userId) throws RemoteException
IMPORTANTE: este método faz uma chamada remota, e portanto deve ser
executado em uma RemoteTask.
userId - Identificador do usuário.RemoteException - em caso de erro de comunicaçãopublic static boolean userHasHisOwnProjects(Object userId) throws RemoteException
userId - identificador do usuáriotrue se o usuário possui algum projeto próprioRemoteException - em caso de erro de comunicaçãouserParticipatesOnSharedProjects(Object),
getAllProjects(Object)public static List<UserProjectInfo> getAllUserProjectsFromOthers(Object userId) throws RemoteException
userId - Identificador do usuário.RemoteException - em caso de erro de comunicaçãopublic static boolean userParticipatesOnSharedProjects(Object userId) throws RemoteException
userId - identificador do usuáriotrue se o usuário participa de projetos de outros
usuáriosRemoteException - em caso de erro de comunicaçãouserHasHisOwnProjects(Object),
getAllUserProjectsFromOthers(Object)public static List<UserProjectInfo> getAllProjectsInfo(Object userId) throws RemoteException
userId - O identificador do usuário.RemoteException - em caso de erro de comunicaçãopublic void makePublic(boolean readOnly)
throws RemoteException
readOnly - - flag que indica se o projeto é RO (true) ou
RW (false)RemoteException - em caso de erro de comunicaçãoupdateUsersRO(Set),
updateUsersRW(Set),
updateUsers(Set, Set),
makePrivate(),
makePublic(boolean)public void makePrivate()
throws RemoteException
RemoteException - em caso de erro de comunicaçãoupdateUsersRO(Set),
updateUsersRW(Set),
updateUsers(Set, Set),
makePrivate(),
makePublic(boolean)public void updateUsers(ProjectPermissions.SharingType sharingType, Set<Object> usersRO, Set<Object> usersRW) throws RemoteException
sharingType - - tipo de compartilhamentousersRO - - usuários com acesso RO. Este conjunto pode estar
preenchido independente do projeto ser compartilhado ou nãousersRW - - usuários com acesso RW. Este conjunto pode estar
preenchido independente do projeto ser compartilhado ou nãoRemoteException - em caso de erro de comunicaçãoupdateUsersRO(Set),
updateUsersRW(Set),
updateUsers(Set, Set),
makePrivate(),
makePublic(boolean)public void updateUsers(Set<Object> usersRO, Set<Object> usersRW) throws RemoteException
usersRO - - usuários com acesso ROusersRW - - usuários com acesso RWRemoteException - em caso de erro de comunicaçãoupdateUsersRO(Set),
updateUsersRW(Set),
makePrivate(),
makePublic(boolean)public void updateUsersRO(Set<Object> usersRO) throws RemoteException
usersRO - - usuários com acesso RO. Este conjunto pode estar
preenchido independente do projeto ser compartilhado ou nãoRemoteException - em caso de erro de comunicaçãoupdateUsersRW(Set),
updateUsers(Set, Set),
makePrivate(),
makePublic(boolean)public void updateUsersRW(Set<Object> usersRW) throws RemoteException
usersRW - - usuários com acesso RW. Este conjunto pode estar
preenchido independente do projeto ser compartilhado ou nãoRemoteException - em caso de erro de comunicaçãoupdateUsersRO(Set),
updateUsers(Set, Set),
makePrivate(),
makePublic(boolean)public boolean removeUser(Object userID) throws RemoteException
userID - - identificador do usuáriotrue indicando se o usuário foi removido,
false se ele não tinha acesso ao projetoRemoteException - em caso de erro de comunicaçãopublic static boolean removeUserProjects(Object userID) throws RemoteException
userID - - identificador do usuáriotrue indicando se a remoção foi realizada com
sucesso, false se houve algum erroRemoteException - em caso de erro de comunicaçãopublic static CommonClientProject openProject(Object projectId, boolean notify) throws RemoteException
projectId - Identificador do projeto a ser aberto.notify - Indicativo de notificação aos clientes de projeto aberto.RemoteException - em caso de erro de comunicaçãopublic void reopen()
throws RemoteException
RemoteException - em caso de erro de comunicaçãopublic ClientProjectFile createFile(ClientProjectFile dir, String fileName, String type) throws RemoteException
Solicita a criação de um arquivo ou diretório no projeto e bloqueia até receber notificação do servidor.
O método instala um observador no objetoCommonClientProject,
que por sua vez é um observador de um objeto ProjectObserver,
o qual finalmente é observador remoto do projeto. Quando o servidor termina
a criação do arquivo, notifica o ProjectObserver, que notifica
o CommonClientProject, que por sua vez notifica o observador
criado neste método. O observador "acorda" a thread principal (posta para
"dormir" logo após a chamada ao método remoto), para que ela possa
continuar o processamento, já dispondo do arquivo solicitado.dir - diretório-pai para o arquivo a ser criado.fileName - nome do arquivo ou diretório a ser criado.type - tipo do arquivo a ser criado, ou DIRECTORY_TYPE no caso de
criação de diretório.RemoteException - em caso de erro de comunicaçãopublic ClientProjectFile[] createFiles(ClientProjectFile dir, List<ProjectFileInfo> fileInfoList) throws RemoteException
Solicita a criação de vários arquivos ou diretórios simultaneamente no projeto e bloqueia até receber notificação do servidor.
O método instala um observador no objetoCommonClientProject,
que por sua vez é um observador de um objeto ProjectObserver,
o qual finalmente é observador remoto do projeto. Quando o servidor termina
a criação do arquivo, notifica o ProjectObserver, que notifica
o CommonClientProject, que por sua vez notifica o observador
criado neste método. O observador "acorda" a thread principal (posta para
"dormir" logo após a chamada ao método remoto), para que ela possa
continuar o processamento, já dispondo do arquivo solicitado.dir - diretório-base para os arquivos a serem criados (os
caminhos são relativos a este diretório).fileInfoList - lista de dados dos arquivos a serem criados.RemoteException - em caso de erro de comunicaçãopublic void createDirectory(ClientProjectFile root, String[] dirPath) throws RemoteException
root - raiz do projetodirPath - caminho do diretório a ser criado, que já deve incluir o
nome do diretório raiz do projetoRemoteException - erro de rmipublic Object getUserId()
public String getName()
public String getDescription()
public CommonProjectInfo getInfo()
CommonProjectInfo do projeto.public void setDescription(String description)
description - descrição.public long getLockingAreaSize()
public void setLockingAreaSize(long size)
size - o tamanho em GB da área reservada ou zero caso não exista
reserva de área.public void setGroupsFrameInfo(Object userId, Hashtable<?,?> groupsFrameInfo)
userId - Identificador do usuário logado.groupsFrameInfo - Configuração do projeto do usuário logado.
FIXME - A remoção das warnings deste método exigiria modificações em
ApplicationPanel.public Hashtable<?,?> getGroupsFrameConfig(Object uId)
uId - Identificador dos usuários que se deseja a configuração.public ClientProjectFile getRoot()
IMPORTANTE: não se deve assumir que a árvore está preenchida, só é garantido que o nó-raiz esteja definido
public void modify()
throws RemoteException
RemoteException - em caso de erro de comunicaçãopublic void refreshTree()
throws RemoteException
RemoteException - em caso de erro de comunicaçãopublic void refreshDir(String[] dirPath) throws RemoteException
dirPath - caminho para o diretório a ser atualizadoRemoteException - em caso de erro na execução remotapublic void refreshDir(ClientProjectFile dir) throws RemoteException
dir - diretório a ser atualizadoRemoteException - em caso de erro na execução remotapublic static void remove(Object projectId) throws RemoteException
projectId - Identificador do projeto.RemoteException - em caso de erro de comunicaçãopublic void close(boolean notify)
throws RemoteException
notify - indicativo de notificação de fechamento aos clientesRemoteException - em caso de erro de comunicaçãopublic String getLocationInServer() throws RemoteException, Exception
RemoteException - em caso de erro de comunicaçãoException - se houver falhado o acesso ao diretório.public void removeFiles(String[][] paths) throws RemoteException
paths.paths - caminhos dos arquivos (incluindo o nome do projeto)RemoteException - em caso de erro de comunicaçãopublic void removeFiles(List<ClientProjectFile> files) throws RemoteException
files - lista de arquivos a serem removidosRemoteException - em caso de erro na execução remotapublic String[] getPath()
public void update(ProjectEvent action)
action - Objeto que descreve o evento ocorrido e as informações
necessárias para tratá-lo.public void installObserver(ProjectObserver projObserver)
projObserver - .public void uninstallObserver()
throws RemoteException
RemoteException - em caso de erro de comunicaçãopublic final ClientProjectFile getFile(String[] filePath) throws RemoteException
null. O nome do projeto não deve estar no
path.filePath - o array de String com o path.null.RemoteException - caso ClientProjectFile.getChild(String)
aplicado à raiz do projeto falhe.ClientProjectFilepublic void setOutOfDate()
Copyright © 2019. All rights reserved.