canguru
Class Canguru.CanguruSaver

java.lang.Object
  |
  +--canguru.Canguru.CanguruSaver
Enclosing class:
Canguru

private class Canguru.CanguruSaver
extends java.lang.Object

Classe responsável por salvar os dados do Canguru.

Version:
$Id: Canguru.java,v 1.31 2003/12/06 16:56:09 galmeida Exp $

Field Summary
private  java.beans.BeanInfo beanInfo
          Propriedades do JavaBean
private  Descriptor descriptor
          Descreve os elementos a serem enviados para o sistema de armazenamento
private  ObjectTable objectTable
          Utilizado para associar Id's aos objetos
private  java.util.LinkedList properties
          Lista com os campos que serão salvos
private  java.lang.String resourceName
          Nome para identificar uma collection de maneira única, é através desse nome que os dados serão recuperados
private  java.lang.Class valueClass
          Classe dos objetos que serão salvos
 
Constructor Summary
(package private) Canguru.CanguruSaver(java.lang.String resourceName, java.lang.Class valueClass)
          Construtor do CanguruSaver.
 
Method Summary
 void addFilter(java.lang.String attributeName, java.lang.Object attributeValue)
          Adiciona critério ao filtro
 void clear()
          Remove todas as associações objeto/Id
private  java.lang.Object fixReferences(java.lang.Object o, Element element)
          Ajusta as referências de um objeto após este ter sido desserializado, evitando que, após esse processo, sejam criados objetos clones
private  java.lang.Object getBeanProperty(java.lang.Object bean, java.beans.PropertyDescriptor property)
          Retorna o valor de uma propriedade de um JavaBean
 java.util.Collection getFilteredObjects()
          Retorna Collection com os elementos que satisfaçam as condições do filtro
 void resetFilter()
          Remove todos os filtros
 java.util.Collection restore()
          Recupera todos os dados
 void save(java.util.Collection c)
          Salva todos os objetos do Set.
private  java.lang.Long saveReference(java.lang.Object o)
          Devolve o Id associado ao objeto, gerando-o se for necessário
private  void setBeanProperty(java.lang.Object bean, java.beans.PropertyDescriptor property, java.lang.Object value)
          Atualiza o valor de uma propriedade de um JavaBean
private  void storeObject(java.lang.Object o, PMap visitados)
          Recebe um objeto a ser persistido, encapsula-o e envia para a camada de armazenamento
 java.lang.String toString()
          Devolve a representação em texto do CanguruSaver.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

objectTable

private ObjectTable objectTable
Utilizado para associar Id's aos objetos


resourceName

private java.lang.String resourceName
Nome para identificar uma collection de maneira única, é através desse nome que os dados serão recuperados


properties

private java.util.LinkedList properties
Lista com os campos que serão salvos


valueClass

private java.lang.Class valueClass
Classe dos objetos que serão salvos


descriptor

private Descriptor descriptor
Descreve os elementos a serem enviados para o sistema de armazenamento


beanInfo

private java.beans.BeanInfo beanInfo
Propriedades do JavaBean

Constructor Detail

Canguru.CanguruSaver

Canguru.CanguruSaver(java.lang.String resourceName,
                     java.lang.Class valueClass)
               throws InvalidNameException,
                      InvalidOperationException,
                      java.beans.IntrospectionException
Construtor do CanguruSaver.

Parameters:
valueClass - Classe do objetos objetos que serão persistidos no Canguru, esta classe deve implementar java.io.Serializable.
resourceName - Nome para identificar uma collection de maneira única, é através desse nome que os dados serão recuperados
Throws:
InvalidNameException - É lançada quando há algum nome de atributo inválido
InvalidOperationException - É lançada quando tenta alterar a definição de atributos e já existem elementos na Collection
java.beans.IntrospectionException - É lançada quando há algum erro no processo de introspecção para verificar o que deverá ser salvo
Method Detail

clear

public void clear()
Remove todas as associações objeto/Id


save

public void save(java.util.Collection c)
          throws java.lang.ClassNotFoundException,
                 java.sql.SQLException,
                 java.io.IOException,
                 IOException
Salva todos os objetos do Set.

Parameters:
c - Collection de dados a serem persistidos.
Throws:
java.io.IOException - É lançada quando há algum erro de IO ao salvar os dados
java.sql.SQLException - É lançada quando há algum erro na execução de comandos SQL ao salvar os dados
java.lang.ClassNotFoundException - É lançada quando a classe dos elementos que serão salvos não pode ser encontrada
IOException

storeObject

private void storeObject(java.lang.Object o,
                         PMap visitados)
                  throws java.io.IOException,
                         IOException
Recebe um objeto a ser persistido, encapsula-o e envia para a camada de armazenamento

Parameters:
o - Objeto a ser persistido.
visitados - Lista de vértices já visitados.
Throws:
java.io.IOException - É lançada quando há algum erro na execução de comandos SQL ao salvar os dados
IOException

getBeanProperty

private java.lang.Object getBeanProperty(java.lang.Object bean,
                                         java.beans.PropertyDescriptor property)
                                  throws BeanManipulationException
Retorna o valor de uma propriedade de um JavaBean

Parameters:
bean - JavaBean do qual se deseja saber o valor da propriedade
property - Propriedade cujo valor será retornado
Returns:
valor da propriedade dada no JavaBean
Throws:
BeanManipulationException - É lançado quando não é possível retornar o valor da propriedade do Bean

saveReference

private java.lang.Long saveReference(java.lang.Object o)
Devolve o Id associado ao objeto, gerando-o se for necessário

Parameters:
o - Objeto valor da propriedade dada no JavaBean
Returns:
id associado ao objeto

getFilteredObjects

public java.util.Collection getFilteredObjects()
                                        throws java.lang.ClassNotFoundException,
                                               java.io.IOException,
                                               java.sql.SQLException,
                                               ElementNotFoundException
Retorna Collection com os elementos que satisfaçam as condições do filtro

Returns:
Collection com os elementos que satisfaçam as condições do filtro
Throws:
java.sql.SQLException - É lançada quando há erro na execução dos comandos SQL de busca dos objetos
ElementNotFoundException - É lançada quando o elemento não pode ser encontrado
java.io.IOException - É lançada quando há erro de IO ao realizar a busca
java.lang.ClassNotFoundException - É lançada quando a classe dos objetos pela qual a busca está sendo feita não pode ser encontrada

restore

public java.util.Collection restore()
                             throws java.io.IOException,
                                    java.lang.ClassNotFoundException,
                                    java.sql.SQLException,
                                    BeanManipulationException
Recupera todos os dados

Returns:
Collection com os elementos que satisfaçam as condições do filtro
Throws:
java.io.IOException - É lançada quando ocorre erro de IO na porcesso de recuperação dos dados.
java.lang.ClassNotFoundException - É lançada quando a classe dos objetos que estamos recuperando não pode ser encontrada.
BeanManipulationException - É lançada quando há um erro na introspecção durante o processo de recuperação dos dados
java.sql.SQLException - É lançada quando há um erro na execução de algum comando SQL durante o processo de recuperação dos dados

fixReferences

private java.lang.Object fixReferences(java.lang.Object o,
                                       Element element)
                                throws BeanManipulationException
Ajusta as referências de um objeto após este ter sido desserializado, evitando que, após esse processo, sejam criados objetos clones

Parameters:
o - Objeto cujas referências serão ajustadas
element - Elemento do Canguru cuja referência será verificada
Returns:
objeto dados, porém com as referências corrigidas
Throws:
BeanManipulationException - É lançado quando não é possível encontrar um atributo ou há um erro de introspecção no objeto

toString

public java.lang.String toString()
Devolve a representação em texto do CanguruSaver.

Overrides:
toString in class java.lang.Object
Returns:
representação em texto do CanguruSaver

setBeanProperty

private void setBeanProperty(java.lang.Object bean,
                             java.beans.PropertyDescriptor property,
                             java.lang.Object value)
                      throws BeanManipulationException
Atualiza o valor de uma propriedade de um JavaBean

Parameters:
bean - JavaBean cuja propriedade será atualizada
property - Propriedade que será atualizada
value - Novo valor da propriedade
Throws:
BeanManipulationException - É lançada quando não é possível atualizar o valor da propriedade do JavaBean

addFilter

public void addFilter(java.lang.String attributeName,
                      java.lang.Object attributeValue)
               throws AttributeDefinitionNotFoundException,
                      InvalidNameException,
                      InvalidAttributeException,
                      FilterException
Adiciona critério ao filtro

Parameters:
attributeName - Nome do atributo que será usado como critério no filtro
attributeValue - Valor pelo qual o atributo será filtrado
Throws:
AttributeDefinitionNotFoundException - É lançada quando a definição do atributo não pode ser encontrada
InvalidNameException - É lançada quando o nome do atributo que será critério no filtro é inválido
InvalidAttributeException - É lançada quando o atributo não tem valor para ser filtrado
FilterException - É lançada quando não existe propriedade com nome attributeName dado

resetFilter

public void resetFilter()
Remove todos os filtros