Package weka.core

# Class SerializationHelper

java.lang.Object
weka.core.SerializationHelper

All Implemented Interfaces:
  `RevisionHandler`

public class SerializationHelper extends Object implements RevisionHandler
A helper class for determining serialVersionUIDs and checking whether classes contain one and/or need one. One can also serialize and deserialize objects to and fro files or streams.

Version:
  $Revision: 8597 $
Author:
  fracpete (fracpete at waikato dot ac dot nz)

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`SERIAL_VERSION_UID`
the field name of serialVersionUID.

## Constructor Summary

Constructors
Constructor
Description
`SerializationHelper()`

## Method Summary

Modifier and Type
Method
Description
`String`
`getRevision()`
Returns the revision string.
`static long`
`getUID(Class c)`
reads or creates the serialVersionUID for the given class.
`static long`
`getUID(String classname)`
reads or creates the serialVersionUID for the given class.
`static boolean`
`hasUID(Class c)`
checks whether the given class contains a serialVersionUID.
`static boolean`
`hasUID(String classname)`
checks whether the given class contains a serialVersionUID.
`static boolean`
`isSerializable(Class c)`
checks whether a class is serializable.
`static boolean`
`isSerializable(String classname)`
checks whether a class is serializable.
`static void`
`main(String[] args)`
Outputs information about a class on the commandline, takes class name as arguments.
`static boolean`
`needsUID(Class c)`
checks whether a class needs to declare a serialVersionUID, i.e., it implements the java.io.Serializable interface but doesn't declare a serialVersionUID.
`static boolean`
`needsUID(String classname)`
checks whether a class needs to declare a serialVersionUID, i.e., it implements the java.io.Serializable interface but doesn't declare a serialVersionUID.
`static Object`
`read(InputStream stream)`
deserializes from the given stream and returns the object from it.
`static Object`
`read(String filename)`
deserializes the given file and returns the object from it.
`static Object[]`
`readAll(InputStream stream)`
deserializes from the given stream and returns the object from it.
`static Object[]`
`readAll(String filename)`
deserializes the given file and returns the objects from it.
`static void`
`write(OutputStream stream, Object o)`
serializes the given object to the specified stream.
`static void`
`write(String filename, Object o)`
serializes the given object to the specified file.
`static void`
`writeAll(OutputStream stream, Object[] o)`
serializes the given objects to the specified stream.
`static void`
`writeAll(String filename, Object[] o)`
serializes the given objects to the specified file.

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### SERIAL_VERSION_UID

public static final String SERIAL_VERSION_UID
the field name of serialVersionUID.

See Also:
  - Constant Field Values

## Constructor Details

### SerializationHelper

public SerializationHelper()

## Method Details

### isSerializable

public static boolean isSerializable(String classname)
checks whether a class is serializable.

Parameters:
  `classname` - the class to check
Returns:
  true if the class or one of its ancestors implements the Serializable interface, otherwise false (also if the class cannot be loaded)

### isSerializable

public static boolean isSerializable(Class c)
checks whether a class is serializable.

Parameters:
  `c` - the class to check
Returns:
  true if the class or one of its ancestors implements the Serializable interface, otherwise false

### hasUID

public static boolean hasUID(String classname)
checks whether the given class contains a serialVersionUID.

Parameters:
  `classname` - the class to check
Returns:
  true if the class contains a serialVersionUID, otherwise false (also if the class is not implementing serializable or cannot be loaded)

### hasUID

public static boolean hasUID(Class c)
checks whether the given class contains a serialVersionUID.

Parameters:
  `c` - the class to check
Returns:
  true if the class contains a serialVersionUID, otherwise false (also if the class is not implementing serializable)

### needsUID

public static boolean needsUID(String classname)
checks whether a class needs to declare a serialVersionUID, i.e., it implements the java.io.Serializable interface but doesn't declare a serialVersionUID.

Parameters:
  `classname` - the class to check
Returns:
  true if the class needs to declare one, false otherwise (also if the class cannot be loaded!)

### needsUID

public static boolean needsUID(Class c)
checks whether a class needs to declare a serialVersionUID, i.e., it implements the java.io.Serializable interface but doesn't declare a serialVersionUID.

Parameters:
  `c` - the class to check
Returns:
  true if the class needs to declare one, false otherwise

### getUID

public static long getUID(String classname)
reads or creates the serialVersionUID for the given class.

Parameters:
  `classname` - the class to get the serialVersionUID for
Returns:
  the UID, 0L for non-serializable classes (or if the class cannot be loaded)

### getUID

public static long getUID(Class c)
reads or creates the serialVersionUID for the given class.

Parameters:
  `c` - the class to get the serialVersionUID for
Returns:
  the UID, 0L for non-serializable classes

### write

public static void write(String filename, Object o) throws Exception
serializes the given object to the specified file.

Parameters:
  `filename` - the file to write the object to
  `o` - the object to serialize
Throws:
  `Exception` - if serialization fails

### write

public static void write(OutputStream stream, Object o) throws Exception
serializes the given object to the specified stream.

Parameters:
  `stream` - the stream to write the object to
  `o` - the object to serialize
Throws:
  `Exception` - if serialization fails

### writeAll

public static void writeAll(String filename, Object[] o) throws Exception
serializes the given objects to the specified file.

Parameters:
  `filename` - the file to write the object to
  `o` - the objects to serialize
Throws:
  `Exception` - if serialization fails

### writeAll

public static void writeAll(OutputStream stream, Object[] o) throws Exception
serializes the given objects to the specified stream.

Parameters:
  `stream` - the stream to write the object to
  `o` - the objects to serialize
Throws:
  `Exception` - if serialization fails

### read

public static Object read(String filename) throws Exception
deserializes the given file and returns the object from it.

Parameters:
  `filename` - the file to deserialize from
Returns:
  the deserialized object
Throws:
  `Exception` - if deserialization fails

### read

public static Object read(InputStream stream) throws Exception
deserializes from the given stream and returns the object from it.

Parameters:
  `stream` - the stream to deserialize from
Returns:
  the deserialized object
Throws:
  `Exception` - if deserialization fails

### readAll

public static Object[] readAll(String filename) throws Exception
deserializes the given file and returns the objects from it.

Parameters:
  `filename` - the file to deserialize from
Returns:
  the deserialized objects
Throws:
  `Exception` - if deserialization fails

### readAll

public static Object[] readAll(InputStream stream) throws Exception
deserializes from the given stream and returns the object from it.

Parameters:
  `stream` - the stream to deserialize from
Returns:
  the deserialized object
Throws:
  `Exception` - if deserialization fails

### getRevision

public String getRevision()
Returns the revision string.

Specified by:
  `getRevision` in interface `RevisionHandler`
Returns:
  the revision

### main

public static void main(String[] args) throws Exception
Outputs information about a class on the commandline, takes class name as arguments.

Parameters:
  `args` - the classnames to check
Throws:
  `Exception` - if something goes wrong