Newsgroup: it.comp.java
Titolo: Salvare oggetti non Serializzabile

>> VIENE GENERATA UN'ECCEZZIONE , poichè contiene oggetti non serializzabili.
Ekko  quello che vorrei capire, data l'uscita di SDK 1.5 e l'eminente
uscita di JDK 6, xkè ste brave menti della sun , non hanno fatto un
metodo tipo transient, o robbe varie ke permetta la memorizzazione di
oggetti non serializzabili???
UN altro dubbio .....I wrapper::::: POsso realizzare un wrapper
serializzabile, ed nasconderci gli oggetti non serializzibli, per
poterli mettere in un linkedList, ed immagazzinare il tutto in un
file??
GRAZIE per l'attenzione,
ASPEtterò un'illuminazione :)

 oggetti non serializzabili???
Per definizione.


PER definizione cosa??

 
http://csvtosql.sourceforge.net
FICO D'INDIA - Tipico play boy di una discoteca di Nuova Delhi.

 
http://csvtosql.sourceforge.net
"E' buffo. Non raccontate mai niente a nessuno. Se lo fate, finisce che
sentite la mancanza di tutti." -- "Il giovane Holden", di J. D. Salinger



Significa che se non sono serializzabili, _non_ sono serializzabili. C'e'
poco da fare se non copiare tutto campo per campo in un tuo oggetto
serializzabile.
transient in questo caso non c'entra, serve per specificare campi che non
devono essere serializzati pur essendo serializzabili

Quindi dici che quelli della Sun non hanno progettato un metodo che
permetta di serializzare un oggetto a run-time??
INfatti come giustamente hai intuito, non ho bisogno delle parola
chiave transient, ma che a run-time accada la seguente situazione:
public class Container implements Serializable{
  private LinkedList list;
     Container (){
     list=new LinkedList();
}
    //metodi  di utilità
 public class addObjetcs(Object obj ){
      list.add(obj);
  ................
}
class Immagazzina implements Serializable{
      Immagazzina(String nameOfFile){
            .........
  }
     //istanze utili per memorizzare secondo la serializzazione
     //tipo writeObject etcc..
}
class Dejavu {
   public static void main(String [] args){
    //istanzio un oggetto non serializzabile
   Giocattolo gio= new Giocattolo("SPADA LASER",28);
   Container cont=new Container ();
   cont.addObjetcs(gio );
  Immagazzina save=Immagazzina ("MAGAZZINO.DAT");
  save.memorizza(cont);
// a questo punto se la classe Giocattolo fosse serializzabile avremmo
tale oggetto all'interno del file  MAGAZZINO.DAT.
/*
QUELLO KE MI KIEDO IO , è:
1) xkè non ce un modo di rendere la mia classe giocattolo a run-time
serializzabile??
2) xkè non c'è un modo per rendere un oggetto del quale viene
memorizzato tipo transient  a  run-time?
3)
AVETE MAI REALIZZATO UN WRAPPER PER OGGETTI NON REALIZZABILI??AVETE MAI
PENSATO AL PATTERN ??
*/   
  }
GRAZIE PER L'attenzione
}

 
http://csvtosql.sourceforge.net
Oggi hai un aspetto veramente terribile.

SI scusa se ho messo le kappa :).
TI spiego il problema:
HO una classe Container serializzabile, che può contenere al suo
interno oggetti sia serializzabili che non, e perciò non posso
utilizzare transient.
Poi per meglio farti capire ho la seguente situazione:
Ho una classe che permezzo della riflessione analizza quello che
avviene a run-time  ad una classe:
Automobile auto=new Automobile("FERRARI", 56);
auto.accellera(79);
auto.accellera(200);
auto.stop();
La classe che usa la reflection s'interpone nelle chiamate ed prende i
seguenti parametri:
 NOME METODO
VALORE PASSATO
VALORE RESTITUITO
e questi vengono messi all'interno della classe Container.
IL mio problema c'è quando al metodo si passa un oggetto non
serializzabile, ed restiuisce un oggetto non serializzabile.
IL problema quindi riguarda a run-time, e per questo non posso
immettere nella classe istanze che non posso indovinare a priori.
chiaro ora??
GRAzie per l'aiuto

 
http://csvtosql.sourceforge.net
Teorema di Identita': L'insieme delle ragazze che con te NON ci starebbero
coincide con l'insieme delle ragazze.

 
http://csvtosql.sourceforge.net
eh no magari, avrei risolto il problema :(.
ALcuni mi hanno suggerito di salvare il tutto su di un file xml, ma non
ne so niente a riguardo :( uffff.
E poi come faccio a salvare per esempio un linkedList in un file XMl,
di cui non conosco gli oggetti che stanno all'interno??

 di cui non conosco gli oggetti che stanno all'interno??
Non è difficile serializzare un oggetto in XML con Java...
Basta usare bene google ed XStream!
http://xstream.codehaus.org/
---------------------------------------------------------------------------
Ecco un po' di FAST-CODE:
public class Person {
   private String firstname;
   private String lastname;
   private PhoneNumber phone;
   private PhoneNumber fax;
   // ... constructors and methods
}
public class PhoneNumber {
   private int code;
   private String number;
   // ... constructors and methods
}
----------------------------------------------------------------------------
XStream xstream = new XStream();
xstream.alias("person", Person.class);
xstream.alias("phonenumber", PhoneNumber.class);
Person joe = new Person("Joe", "Walnes");
joe.setPhone(new PhoneNumber(123, "1234-456"));
joe.setFax(new PhoneNumber(123, "9999-999"));
String xml = xstream.toXML(joe);
----------------------------------------------------------------------------
ed il gioco è fatto:
<person>
   <firstname>Joe</firstname>
   <lastname>Walnes</lastname>
   <phone>
     <code>123</code>
     <number>1234-456</number>
   </phone>
   <fax>
     <code>123</code>
     <number>9999-999</number>
   </fax>
</person>
Spero di esserti stato utile,
jRed
PS: posta poi la tua soluzione, potrebbe essere utile a qualcun'altro 
sicuramente...


TI RINGRAZIO , IN un certo senso mi potrebbe essere di aiuto, infatti
ho scaricato il codice sorgente e sto cercando di capire come essi
siano riusciti a rendere oggetti non serializzabili, serializabili a
run-time senza che le classi debbano implementare Serializzable.
Se riesco a realizzare il framework lo posterò qua.
CIao e grazie ancora :)


Salve a tutti volevo porre la sequente domanda :
<person>
    <firstname>Joe</firstname>
   <lastname>Walnes</lastname>
  <phone>
    <code>123</code>
    <number>1234-456</number>
   </phone>
  <fax>
    <code>123</code>
      <number>9999-999</number>
  </fax>
 </person>
Dato il seguente oggetto person , strutturato secondo il framework
Xstream, è possibile dal file xml generato , trasformarlo in HTML ??

 
http://csvtosql.sourceforge.net
Regola di Lord Falkland: Quando non e' necessario prendere una decisione, e'
necessario non prendere una decisione.


Allora immaginate di avere un file management.xml ,avente come
contenuto  la seguente struttura xml, realizzata con il tool Xstream:
<?xml version="1.0" encoding="ISO-8859-1"?>
<person>
    <firstname>Joe</firstname>
   <lastname>Walnes</lastname>
  <phone>
    <code>123</code>
    <number>1234-456</number>
   </phone>
  <fax>
    <code>123</code>
      <number>9999-999</number>
  </fax>
 </person>
Ho la  necessità di riportare tale struttura in un  file html.
Mi hanno parlato del Xsl e Xslt , per la formattazione del documento,
ma quello che non capisco come il file xml  e quello xsl possano
interagire, e come generare  un file xslt adatto ad un'insieme di file
xml.
E c'è un modo per generare dato il mio file xml, quel oppurtuno xslt
in automatico??
 Spero di essere stato

 
http://csvtosql.sourceforge.net
L'uomo e' nato per soffrire, e ci riesce benissimo. -- Roberto Gervaso

 L'uomo e' nato per soffrire, e ci riesce benissimo. -- Roberto Gervaso
hum...penso che sia proprio quello che cerco..
Sai sono stato sul sito 
http://xml.apache.org/xalan-j/
 , nella sessione
download non riesco a trovare le librerie....come mai??...le hanno
tolte??.
Un'altra cosa....per mezzo del tool sarebbe possibile , da un insieme
di files xml inseriti in una cartella, generare per ciascun file xml,
il proprio xslt e , poi convertirlo in html??
 
grazie per l'aiuto.

 
http://csvtosql.sourceforge.net
La sofferenza e' forse l'unico mezzo valido per rompere il sonno dello
spirito. -- Saul Bellow, "Il re della pioggia"


Salve ragazzi volevo chiedervi se c'è qualcuno che abbia risolto il
mio problema utilizzando la libreria di Xstream.
Sono stato sul sito, ma il massimo che ho trovato è questo:
FILE XSLt
<xsl:stylesheet version="1.0"
xmlns:xsl="
http://www.w3.org/1999/XSL/Transform
">
  <xsl:output method="xml" omit-xml-declaration="yes" indent="no"/>
  <xsl:template match="/cat">
    <xsl:copy>
      <xsl:apply-templates select="mName"/>
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>
___________________
XStream xstream = new XStream();
xstream.alias("cat", Cat.class);
TraxSource traxSource = new TraxSource(new Cat(4, "Garfield"),
xstream);
Writer buffer = new StringWriter();
Transformer transformer =
TransformerFactory.newInstance().newTransformer(
    new StreamSource(new StringReader(XSLT)));
transformer.transform(traxSource, new StreamResult(buffer));
soltanto che a me serve oltre a generare il fil xml, che già il mio
tool fa per conto suo, anche il file Xslt , e poi con questi due file
realizzare un tool che me li converta in html.
Secondo voi è possibile :O ??
Potete osservare l'esempio presso il sito:
http://xstream.codehaus.org/manual-tweaking-output.html
Grazie per l'aiuto