Dúvida com XStream

2 respostas
K

Olá pessoal..

Estou tentando gerar um XML a partir de algumas classes. As classes são essas:

public class Modulo {

	private String text;
	private ArrayList aplicacoes;
        
        // get/set

}
public class Aplicacao {

	private String text;
        
        // get/set

}

E a classe main para fazer um teste:

public class Main {

	public static void main(String[] args) {
		XStream stream = new XStream();
		
		Modulo modulo = new Modulo();
		Aplicacao aplicacao1 = new Aplicacao();
		Aplicacao aplicacao2 = new Aplicacao();
		
		modulo.setText("Manutenção");
		
		aplicacao1.setText("Usuário");		
		aplicacao2.setText("Funcionário");
		
		ArrayList aplicacoes = new ArrayList();
		aplicacoes.add(aplicacao1);
		aplicacoes.add(aplicacao2);
		
		String xml = stream.toXML(modulo);
		System.out.println(xml);
	}

}

O XML gerado fica assim:

<modulo text="Manutenção">
    <aplicacoes>
      <aplicacao text="Usuário" />
      <aplicacao text="Funcionário"/>
    </aplicacoes>
</modulo>

Só que não pode existir essa tag aplicações. Ele teria que ficar assim:

<modulo text="Manutenção">
      <aplicacao text="Usuário" />
      <aplicacao text="Funcionário"/>
</modulo>

Tem como fazer isso galera ? dei uma olhada na documentação do XStream mas não achei nada.

Valeu!

2 Respostas

R
Senhor, basta fazer

@XStreamImplicitCollection(value=aplicacoes,item=aplicacao)

public class Modulo {
private String text;
private ArrayList aplicacoes;
     
     // get/set

}

e maiores exemplos em :
http://xstream.codehaus.org/annotations-tutorial.html

K

Poderia ter usado a anotação, mas preferi assim:

stream.addImplicitCollection(Modulo.class, "aplicacoes");

Valeu!

Criado 9 de dezembro de 2006
Ultima resposta 9 de dez. de 2006
Respostas 2
Participantes 2