clonage d'un objet recupere a partir d'un fichier XML
clonage d'un objet recupere a partir d'un fichier XML - XML/XSL - Programmation
MarshPosté le 09-06-2007 à 22:23:49
Salut, je veux generer des factures en XML,pour cela je cree une facture modele que je deserialise a chaque fois que je veux creer une nouvelle facture,on fait c pas une craetion mais juste une modification de l'objet recupere par la deserialisation de la facture original, dans lequel j'ajoute mes articles. Je vous expose mon probleme, veuillez repondre le plus tot possible. Merci J'ai une classe Factory que j'ai cree moi-meme et qui permet de : • désérialiser un document document.xml et le récupérer dans un objet doc ; • ajouter des articles dans le tableau de type Tbl de l’objet doc ; • Une fois les lignes ajoutées dans le tableau et les modifications du numéro de la facture et de l’auteur sont faites sur l’objet doc, ce dernier va être sérialiser dans le fichier doc2.xml; • Le document doc2.xml devra en théorie contenir dans ses balises les articles ajoutes, mais ce dernier ne contient que plusieurs occurrences de la dernière ligne ajoutée. Problème de clonage de l’objet ligne Tr : L’objet Tr contient lui-même plusieurs objets : objet TrPr propriétés de la ligne Tr, une liste de l’objet colonne Tc (List<Tc> ). Je mets la classe Tr et toutes les classes qui la compose Cloneable ; Je surdéfinis le méthode Clone dans la classe Tr de façon a ce qu’elle clone tous les objets Tc qu’elle contient : for(int i=0;i<ligne.getTc().size();i++){ligne.getTc().set(i,this.tc.get(i).clone());} C’est pas suffisant parce qu’il faut aussi surdéfinir aussi la méthode clone dans la classe Tc de tel façon a ce qu’elle puisse cloner tous ses sous objets qu’elle contient, ce qui veut dire une autre boucle : for(int i=0;i<(int)getP().size();i++){colonne.p.add((P)p.get(i).clone());} c’est la ou ca bloque: mémoire insuffisante !!! si je supprime cette ligne les colonnes ne sont pas cloner, mais ils font références sur les colonnes originales.
Marsh Posté le 09-06-2007 à 22:23:49
Salut,
je veux generer des factures en XML,pour cela je cree une facture modele que je deserialise a chaque fois que je veux creer une nouvelle facture,on fait c pas une craetion mais juste une modification de l'objet recupere par la deserialisation de la facture original, dans lequel j'ajoute mes articles.
Je vous expose mon probleme, veuillez repondre le plus tot possible. Merci
J'ai une classe Factory que j'ai cree moi-meme et qui permet de :
• désérialiser un document document.xml et le récupérer dans un objet doc ;
• ajouter des articles dans le tableau de type Tbl de l’objet doc ;
• Une fois les lignes ajoutées dans le tableau et les modifications du numéro de la facture et de l’auteur sont faites sur l’objet doc, ce dernier va être sérialiser dans le fichier doc2.xml;
• Le document doc2.xml devra en théorie contenir dans ses balises les articles ajoutes, mais ce dernier ne contient que plusieurs occurrences de la dernière ligne ajoutée.
Problème de clonage de l’objet ligne Tr :
L’objet Tr contient lui-même plusieurs objets : objet TrPr propriétés de la ligne Tr, une liste de l’objet colonne Tc (List<Tc> ).
Je mets la classe Tr et toutes les classes qui la compose Cloneable ;
Je surdéfinis le méthode Clone dans la classe Tr de façon a ce qu’elle clone tous les objets Tc qu’elle contient :
for(int i=0;i<ligne.getTc().size();i++){ligne.getTc().set(i,this.tc.get(i).clone());}
C’est pas suffisant parce qu’il faut aussi surdéfinir aussi la méthode clone dans la classe Tc de tel façon a ce qu’elle puisse cloner tous ses sous objets qu’elle contient, ce qui veut dire une autre boucle :
for(int i=0;i<(int)getP().size();i++){colonne.p.add((P)p.get(i).clone());}
c’est la ou ca bloque: mémoire insuffisante !!!
si je supprime cette ligne les colonnes ne sont pas cloner, mais ils font références sur les colonnes originales.