Bom eu meio que já arrumei esse problema, mudando para o JDOM, mas ainda é bom aprender a usar o XStream, quanto a esse código eu tenho uma pergunta, porque a necessidade do – throws IOException, ClassNotFoundException --, ou do try/catch?
[code]class ClsBancoxml{
public String Provider;
public String Datasource;
public String User;
public String Pwd;
public int DBType;
}
public class teste{
public static void main( String[] args) throws IOException, ClassNotFoundException{
File arquivo = new File("src/manutencao/banco.xml");
FileReader Leitor = new FileReader(arquivo);
XStream xml = new XStream();
xml.alias("banco", ClsBancoxml.class);
ObjectInputStream in = xml.createObjectInputStream(Leitor);
ClsBancoXML banco = (ClsBancoXML) in.readObject();
System.out.println(in.readObject());
}
}[/code]
Ele retorna esse erro:
Exception in thread "main" java.lang.IllegalArgumentException: XPP3 pull parser library not present. Specify another driver. For example: new XStream(new DomDriver())
at com.thoughtworks.xstream.io.xml.XppDriver.loadLibrary(XppDriver.java:42)
at com.thoughtworks.xstream.io.xml.XppDriver.createReader(XppDriver.java:29)
at com.thoughtworks.xstream.XStream.createObjectInputStream(XStream.java:1294)
at manutencao.teste.main(teste.java:38)
Mas meu problema é agora é o seguinte, tenho a enum:
public enum idDbTypeEnum
{
idDBNone(0),
idDBOracle(1),
idDBSQLServer(2),
idDBInformix(3),
idDBSybase(4),
idDBIbmDB2(5),
idDBAccess(6),
idDBInterbase(7),
idDBPostgreSQL(8);
}
e preciso criar um set ± assim:
private idDbTypeEnum gobjDatabaseType;
public void setDataType(idDbTypeEnum gobjDatabaseType) {
this.gobjDatabaseType = gobjDatabaseType;
switch(gobjDatabaseType){
case idDBOracle:
.....
.....
.....}
só que quando for chamar o set eu não terei um valor (idDbTypeEnum) terei o valor númerico (int) correspondente, entendeu?
Algo assim: setDataType(1)
Preciso converter esse valor número 1, para o valor enum idDbOracle, como eu faço isso?