/jEdit/tags/jedit-4-5-pre1/org/gjt/sp/jedit/bsh/commands/save.bsh
# · Unknown · 34 lines · 26 code · 8 blank · 0 comment · 0 complexity · 162ce4530b3b7dcd409759db4b5aab7e MD5 · raw file
- /**
- Save a serializable Java object to filename.
- */
- bsh.help.save = "usage: save( object, filename )";
- void save( Object obj, String filename )
- {
- File file = pathToFile( filename );
- if ( !(obj instanceof Serializable) ) {
- print("Type "+obj.getClass()+" is not serializable");
- return;
- }
- // Detach bsh objects from the caller's namespace during serialization
- // NOTE: THIS IS NOT THREAD SAFE
- if ( obj instanceof org.gjt.sp.jedit.bsh.This ) {
- super.parent = obj.namespace.getParent();
- obj.namespace.prune();
- }
-
- OutputStream out = new FileOutputStream( file );
- ObjectOutputStream oout = new ObjectOutputStream(out);
- oout.writeObject( obj );
- oout.close();
- // Reattach bsh objects to the caller's namespace after serialization
- // NOTE: THIS IS NOT THREAD SAFE
- if ( obj instanceof org.gjt.sp.jedit.bsh.This )
- obj.namespace.setParent( super.parent );
- }