org.mozilla.javascript.serialize
Class ScriptableOutputStream
ObjectOutputStream
org.mozilla.javascript.serialize.ScriptableOutputStream
public class ScriptableOutputStream
extends ObjectOutputStream
Class ScriptableOutputStream is an ObjectOutputStream used
to serialize JavaScript objects and functions. Note that
compiled functions currently cannot be serialized, only
interpreted functions. The top-level scope containing the
object is not written out, but is instead replaced with
another top-level object when the ScriptableInputStream
reads in this object. Also, object corresponding to names
added to the exclude list are not written out but instead
are looked up during deserialization. This approach avoids
the creation of duplicate copies of standard objects
during deserialization.
void | addExcludedName(String name) - Adds a qualified name to the list of object to be excluded from
serialization.
|
void | addOptionalExcludedName(String name) - Adds a qualified name to the list of object to be excluded from
serialization.
|
void | excludeStandardObjectNames() - Adds the names of the standard objects and their
prototypes to the list of excluded names.
|
boolean | hasExcludedName(String name) - Returns true if the name is excluded from serialization.
|
void | removeExcludedName(String name) - Removes a name from the list of names to exclude.
|
protected Object | replaceObject(Object obj)
|
ScriptableOutputStream
public ScriptableOutputStream(OutputStream out,
Scriptable scope)
throws IOException
ScriptableOutputStream constructor.
Creates a ScriptableOutputStream for use in serializing
JavaScript objects. Calls excludeStandardObjectNames.
out
- the OutputStream to write to.scope
- the scope containing the object.
addExcludedName
public void addExcludedName(String name)
Adds a qualified name to the list of object to be excluded from
serialization. Names excluded from serialization are looked up
in the new scope and replaced upon deserialization.
name
- a fully qualified name (of the form "a.b.c", where
"a" must be a property of the top-level object)
addOptionalExcludedName
public void addOptionalExcludedName(String name)
Adds a qualified name to the list of object to be excluded from
serialization. Names excluded from serialization are looked up
in the new scope and replaced upon deserialization.
name
- a fully qualified name (of the form "a.b.c", where
"a" must be a property of the top-level object). The object
need not exist, in which case the name is ignored.
excludeStandardObjectNames
public void excludeStandardObjectNames()
Adds the names of the standard objects and their
prototypes to the list of excluded names.
hasExcludedName
public boolean hasExcludedName(String name)
Returns true if the name is excluded from serialization.
removeExcludedName
public void removeExcludedName(String name)
Removes a name from the list of names to exclude.
replaceObject
protected Object replaceObject(Object obj)
throws IOException