Composição de Objetos

Não sei ao certo se a dúvida tem relação com o tópico hehehe, mas vamos lá.

Eu tenho uma classe que gerencia conexões (connectionManager) utilizando o JDBC.
Criei uma outra classe para guardar e recuperar dados da conexao em um arquivo xml, recebendo um Objeto
como parâmetro. Essa classe utliza o XStream para converter um objeto em XML.
A intenção é passar o objeto ConnectionManager para essa classe contendo url, username, password, etc.
Até aí tudo bem, o problema é que o objeto ConnectionManager é composto dos membros acima e de um objeto
java.sql.Connection que encapsula membros semelhantes aos do objeto anterior e muitos outros, fazendo com que
o arquivo XML fique grande. Eu tentei passar um objeto Vector contendo apenas os membros acima, só que o nome das tags
fica com , , dependendo do tipo do dado no Vector. Entenderam? Eu gostaria que ficasse
, que é exatamente como fica se eu passar um objeto ConnectionManager
sem a composição do objeto Connection, lembrando que eu preciso desse último para classes afins.

Algumém pode me ajudar?

Só pra ajudar no entendimento:

Classe: ConnectionManager
Membros: url, username, password, driverName, java.sql.Connection, etc.

Classe: FileManager
Recebe um objeto (ConnectionManager) via construtor.

Por que você está usando XML ao invés de um arquivo de propriedades simples? O que você espera ganhar com isso?

Quero guardar e recuperar propriedades não apenas de uma, mas de várias conexões. A minha intenção é mostrar em uma JList as conexões salvas para que o usuário não precise mais digitar as propriedades. Será que eu posso salvar as propriedades de várias conexões em apenas um arquivo e ainda recuperá-las?

Neste seu caso acredito que usar XML faz sentido. Por que você não cria uma classe para representar somente esta coleção de propriedades e usa XStream para gerenciar apenas os atributos que você precisa?

Pensei nessa solução, mas não queria instanciar um novo objeto para tal. Entretanto, acho que é a solução. Posso criar uma classe contendo variáveis de instância que representam as propriedades, receber pelo construtor um objeto ConnectionManager e setar as variáveis de instância com as desse objeto.

Né?

Acredito que esse é o caminho. Boa sorte :slight_smile: