bsh.commands.save.bsh Maven / Gradle / Ivy
The newest version!
/**
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 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 bsh.This )
obj.namespace.setParent( super.parent );
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy