Java Fundamental Classes Reference

Previous Chapter 11
The java.io Package
Next
 

ObjectInputValidation

Name

ObjectInputValidation

Synopsis

Interface Name:

java.io.ObjectInputValidation

Super-interface:

None

Immediate Sub-interfaces:

None

Implemented By:

None

Availability:

New as of JDK 1.1

Description

The ObjectInputValidation interface defines a callback for object validation. A class implements this interface if it needs to validate deserialized objects. A class that needs to perform object validation on deserialized instances should pass a validation object to ObjectInputStream.registerValidation() at the beginning of its private readObject() method. When an object of that class is deserialized, the validateObject() method in the validation object is called. If the method is satisfied with the state of the deserialized object, it returns quietly; otherwise it should throw an InvalidObjectException.

The simplest case is to have a class do its own validation by implementing ObjectInputValidation itself and passing this to the registerValidation() method. For example, the following code fragment shows how to register for validation in readObject(). The validateObject() method always throws an exception:

public class ValidateMe
    implements Serializable, ObjectInputValidation {
    private void readObject(ObjectInputStream in)
                 throws IOException, ClassNotFoundException {
        in.registerValidation(this, 0);
        in.defaultReadObject();
    }
    public void validateObject() throws InvalidObjectException {
        // if (this object is not valid)
            throw new InvalidObjectException("Object not valid!");
    }
...
}

Interface Declaration

public abstract interface java.io.ObjectInputValidation {
  // Methods
  public abstract void validateObject();
}

Methods

validateObject

public void validateObject() throws InvalidObjectException

Throws

InvalidObjectException

If the method is not satisfied with its state.

Description

This method allows an object to check its own validity. An InvalidObjectException should be thrown if anything is invalid.

See Also

ObjectInput, ObjectInputStream


Previous Home Next
ObjectInputStream Book Index ObjectOutput

Java in a Nutshell Java Language Reference Java AWT Java Fundamental Classes Exploring Java